样例能过,不知道错哪了
#include<bits/stdc++.h>
using namespace std;
int times[25],n;
string a[25];
int search(int len,int last){
int maxx=len;
for(int i=1;i<=n;i++){
if(times[i]!=2){
for(int j=1;j<min(a[last].size(),a[i].size());j++){
int o=0;
for(int k=1;k<=j;k++){
if(a[last][a[last].size()+k-1-j]!=a[i][k-1]){
o=1;
break;
}
}
if(!o){
times[i]++;
maxx=max(maxx,search(len+a[i].size()-j,i));
times[i]--;
break;
}
}
}
}
return maxx;
}
int main(){
char b;
scanf("%d",&n);
for(int i=1;i<=n;i++) cin>>a[i];
scanf("%c",&b);
scanf("%c",&b);
int maxx=0;
for(int i=1;i<=n;i++){
if(a[i][0]==b){
times[i]++;
maxx=max(maxx,search(a[i].size(),i));
times[i]--;
}
}
printf("%d",maxx);
return 0;
}