题目描述
他咕了
C++ 代码
#include<bits/stdc++.h>
using namespace std;
int n,f[25],ans;
string a[25];
string t;
void dfs(int m,int all)
{
char huawei=a[m][a[m].size()-1];
int ll=a[m].size()-1;
ans=max(ans,all);
for(int i=1;i<=n;i++)
{
if(f[i])
for(int j=0;j<a[i].size()-1;j++)
{
if(a[i][j]==huawei)
{
int ff=1;
for(int z=j;z>=0;z--)
if(ll-z<0||a[i][z]!=a[m][ll-j+z])
ff=0;
if(ff)
{
f[i]--;
dfs(i,all+a[i].size()-1-j);
f[i]++;
}
}
}
}
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
f[i]=2;
}
cin>>t;
a[n+1]=t;
dfs(n+1,1);
cout<<ans<<endl;
return 0;
}