rt,本人代码如下
#include <bits/stdc++.h>
using namespace std;
const int N=110;
int n,ans=0;
string a[N],ss;
int b[N];
char c;
void dfs(string s)
{
for(int i=s.size()-1;i>=0;i--)
{
string t=s.substr(i);
int l=t.size();
for(int i=1;i<=n;i++)
{
if(b[i]<2&&a[i].find(t)==0)
{
b[i]++;
dfs(s+a[i].substr(l));
b[i]--;
}
}
}
if(s.size()>ans)
{
ans=s.size();
ss=s;
}
}
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)cin>>a[i];
scanf("%*c%c",&c);
for(int i=1;i<=n;i++)
{
if(a[i][0]==c)
{
b[i]++;
dfs(a[i]);
b[i]--;
}
}
printf("%d\n",ans);
return 0;
}