WA 40pts求助
  • 板块P1381 单词背诵
  • 楼主koukou
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/11/24 20:09
  • 上次更新2024/11/24 21:22:33
查看原帖
WA 40pts求助
1025097
koukou楼主2024/11/24 20:09
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N = 1e4 + 1;
const int M = 1e5 + 1;
int n, m, sum, ans = 2147483647, l, r, t;
map<string, int> mp;
map<string, bool> g;
map<string, bool> fl;
string a, b[M];
signed main()
{
	cin >> n;
	for(int i = 0; i < n; i++)
	{
		cin >> a; 
		if(!fl[a])
		{
			fl[a] = 1;
//			sum++;
		}
	}
	cin >> m;
	for(int i = 0; i < m; i++)
	{
		cin >> b[i];
		if(fl[b[i]] && !g[b[i]])
		{
			g[b[i]] = 1;
			sum++;
		}
	}
	cout << sum << "\n";
	l = 0, r = -1, t = 0;
	while(r <= m)
	{
		if(t == sum)
		{
			ans = min(ans, r - l + 1);
		}
		if(t >= sum)
		{
			if(mp[b[l]] == 1)
			{
				t--;
			}
			mp[b[l]]--, l++;
		}
		else
		{
			r++;
			if(mp[b[r]] == 0 && fl[b[r]])
			{
				t++;
			}
			mp[b[r]]++;
		}
	}
	if(ans == 2147483647)
	{
		ans = 0;
	}
	cout << ans;
	return 0;
}
2024/11/24 20:09
加载中...