#include <bits/stdc++.h>
using namespace std;
#define int long long
const int maxn = 1e5 + 10;
const int maxm = 1e4 + 10;
int n, m, a[maxn], cnt[maxm], mx;
map<string, int> mp;
signed main() {
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++) {
string s; int id; cin >> s;
if (mp.count(s)) {
id = mp[s];
cnt[id]++;
if (cnt[id] == 1) mx++;
} else id = 0;
a[i] = id;
}
cout << mx << "\n";
memset(cnt, 0, sizeof(cnt));
int st = 1, ed = m;
for (int num = 0, r = 0, l = 1; l <= m; l++) {
if (l != 1) if (a[l - 1] != 0) if (--cnt[a[l - 1]] == 0) --num;
while (num < mx && r < m) {
++r;
if (a[r] != 0) if (++cnt[a[r]] == 1) ++num;
}
if (num == mx) if (r - l < ed - st) {
st = l; ed = r;
}
}
cout << ed - st + 1 << "\n";
return 0;
}
不知为何,求 DALAO 帮助 QwQ