#include<map>
#include<set>
#include<iostream>
using namespace std;
const int M=1e5+5;
set<string>s;
string t,b[M];
map<string,int>mp;
int i,j,n,m,tot,all,minn=1e9;
int main(){
cin.tie(0),cout.tie(0);
ios::sync_with_stdio(false);
cin>>n;
for(i=0;i<n;i++)
cin>>t,mp[t]=0,s.insert(t);
cin>>m;
for(i=0;i<m;i++){
cin>>b[i];
set<string>::iterator it=s.find(b[i]);
if(it!=s.end()) all++,s.erase(it);
}cout<<all<<'\n';
if(!all){
cout<<0;
return 0;
}for(i=0;i<m;i++){
map<string,int>::iterator it;
while(j<m&&tot<all){
it=mp.find(b[j++]);
tot+=it->second++==0;
}if(tot<all) break;
minn=min(j-i,minn);
it=mp.find(b[i]);
tot-=!--it->second;
}cout<<minn;
return 0;
}
如果把上面注释的那一行代码取消注释掉就只能过4个点WA记录然而我把那行代码注释掉以后直接就过了AC记录这是为什么???