#include <iostream>
#include <cstring>
using namespace std;
int i,j,n,m,ans,cnt,dt[100005],sum[100005];
string a;
long long hasha[1005],hashb[100005];
bool p[1005],dp[1005];
int min(int a,int b){
if(a>b) return b;
else return a;
}
int main(){
cin >>n;
for(int i=0;i<n;i++){
cin >>a;
for(int j=0;j<a.size();j++){
hasha[i]+=a[j]*(a.size()-j)*(a.size()-j);
}
}
cin >>m;
for(int i=0;i<m;i++){
cin >>a;
for(int j=0;j<a.size();j++){
hashb[i]+=a[j]*(a.size()-j)*(a.size()-j);
}
dt[i]=-1;
}
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
if(hasha[i]==hashb[j]){
p[i]=true;
dt[j]=i;
}
}
if(p[i]==true) ans++;
}
cout <<ans<<endl;
for(int i=0;i<m-ans;i++){
int qwq=0;
for(int j=i;j<m&&qwq<ans;j++){
if(dt[j]!=-1&&dp[dt[j]]!=true){
if(hasha[dt[j]]==hashb[j]){
dp[dt[j]]=true;
qwq++;
}
}
if(qwq==ans-1){
sum[i]=j-i+1;
break;
}
}
}
int cnt=99999;
for(int i=0;i<m;i++){
if(sum[i]!=0) cnt=min(cnt,sum[i]);
}
cout <<cnt;
return 0;
}
T两个点 A一个点 其余WA
样例和自己脚造数据都过了
感谢路过的神犇救救我