rt , 代码如下,语言C++11 和 14 都试了
#include<iostream>
#include<string>
#include<cstring>
#include<map>
using namespace std;
int n, m, sum, ans;
string s[100005], st;
map<string, int> time;
map<string, bool>book;
int main() {
std::ios::sync_with_stdio(0);
cin>>n;
for(int i = 1; i <= n; i++) {
cin>>st;
book[st] = 1;
}
cin>>m;
int l = 1;
for(int i = 1; i <= m; i++) {
cin>>s[i];
if(book[s[i]])time[s[i]]++;
if(time[s[i]] == 1) {
sum++;
ans = i - l + 1;
}
while(l <= i) {
if(!book[s[l]]) {
l++;
continue;
}
if(time[s[l]] >= 2) {
time[s[l]]--;
l++;
continue;
}
break;
}
ans = min(ans, i - l + 1);
}
cout<<sum<<'\n'<<ans;
return 0;
}