#include <iostream> #include<cstring> #include<vector> #include<algorithm> using namespace std; int getCount(vector<string>& IP_proxy,vector<string>& IP_visit,int n2){ int count=-1,index=0; while(index<n2){ int maxn=-1; for(string s:IP_proxy){ auto iter=find(IP_visit.begin()+index,IP_visit.end(),s); if(iter-IP_visit.begin()>maxn) maxn=iter-IP_visit.begin(); } count++; index=maxn; } return count; } int main() { int n1, res; while (cin >> n1) { // 注意 while 处理多个 case res = 0; vector<string> IP_proxy(n1); for (int i = 0; i < n1; i++) { cin >> IP_proxy[i]; } int n2; cin >> n2; vector<string> IP_visit(n2); for (int i = 0; i < n2; i++) { cin >> IP_visit[i]; } if(n1==1&&find(IP_visit.begin(),IP_visit.end(),IP_proxy[0])!=IP_visit.end()){ cout<<-1<<endl; continue; } else cout<<getCount(IP_proxy,IP_visit,n2); } } // 64 位输出请用 printf("%lld")