为什么 #7 RE 玄关
玄关玄关
#include <bits/stdc++.h>
using namespace std;
string a[1005], b[100005];
map<string, bool>mp, tmp;
map<string, int>mp2;
int main() {
int n;
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> a[i];
mp[a[i]] = 1;
}
int m;
cin >> m;
int ans = 0;
tmp = mp;
for (int i = 1; i <= m; i++) {
cin >> b[i];
if (tmp[b[i]]) {
ans++;
tmp[b[i]] = 0;
}
}
cout << ans << endl;
int l = 1, r = 1, t = 0;
int mi = INT_MAX;
for (; r <= m; r++) {
if (mp[b[r]]) {
if (mp2[b[r]] == 0)t++;
mp2[b[r]]++;
}
while (t == ans) {
mi = min(mi, r - l + 1);
if (mp[b[l]]) {
mp2[b[l]]--;
if (mp2[b[l]] == 0)t--;
}
l++;
}
}
if (mi == INT_MAX) {
cout << 0;
} else {
cout << mi;
}
return 0;
}