求调
查看原帖
求调
547238
篮网总冠军楼主2024/9/23 23:33

#include <bits/stdc++.h>
using namespace std;

string s[1005];
string s1[100005];
map<string,bool>mp;
map<string,int>rt;
int main(){
//	freopen(".in","r",stdin);
//	freopen(".out","w",stdout);
	int n;
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>s[i];
	}
	int m;
	cin>>m;
	int ans=0;
	for(int i=1;i<=m;i++){
		cin>>s1[i];
		mp[s1[i]]=1;
	}
	for(int i=1;i<=n;i++){
		if (mp[s[i]]==1) ans++;
	}
	cout<<ans<<endl;
	int r=0,cnt=0;
	int sum=1e9;
	for(int i=1;i<=m;i++){
		while(r<i){
			r++;
			rt[s1[r]]++;
			if (rt[s1[r]]==1) cnt++;
		}
		while(cnt<ans&&r<=m){
			r++;
			rt[s1[r]]++;
			if (rt[s1[r]]==1) cnt++;
		}
		if (cnt==ans) sum=min(sum,r-i+1);
		rt[s1[i]]--;
		if (rt[s1[i]]==0) cnt--;
	}
	cout<<sum<<endl;
	return 0;
}

2024/9/23 23:33
加载中...