90pts WA on #7 求调
查看原帖
90pts WA on #7 求调
838926
very_easy楼主2024/10/19 17:11
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=1e6;
struct node{
	int be,idx;
};
string a[N];
int ans,vis[N];
map<string,int> mp,f;
queue<node> q;
signed main(){
	ios::sync_with_stdio(false);
	int n,m;
	cin>>n;
	for(int i=1;i<=n;i++){
		string s;
		cin>>s;
		mp[s]=i;
	}
	cin>>m;
	for(int i=1;i<=m;i++){
		cin>>a[i];
		if(mp[a[i]]&&!f[a[i]]){
			ans++;
			f[a[i]]=1;
		}
	}
	cout<<ans<<endl;
	ans=0;
	for(int i=1;i<=m;i++){
		if(!mp.count(a[i])){
			continue;
		}
		int id=mp[a[i]];
		if(!vis[id]){
			ans=INT_MAX;
		}
		vis[id]=i;
		q.push({i,id});
		while(q.front().be!=vis[q.front().idx]){
			q.pop();	
		}
		ans=min(ans,i-q.front().be+1);
	}
	cout<<ans;
	return 0;
}

自测#7中比答案多1,求调

2024/10/19 17:11
加载中...