#include <bits/stdc++.h>
using namespace std;
int n,ans=1;
string a[50];
bool f[50];
char s[50],w[50],st;
void dfs(char x,int l)
{
if(l>ans)
{
ans=l;
}
int i;
for(i=1;i<=2*n;i++)
{
if(f[i]==0&&x==s[i])
{
f[i]=1;
cout<<a[i]<<" "<<a[i].size()<<endl;
dfs(w[i],l+a[i].size());
f[i]=0;
}
}
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
s[i]=a[i][0];
w[i]=a[i][a[i].size()-1];
}
for(int i=1;i<=n;i++)
{
a[i+n]=a[i];
s[i+n]=s[i];
w[i+n]=w[i];
}
cin>>st;
dfs(st,1);
cout<<ans;
return 0;
}
样例好像都没过QAQ但不知道是哪里的思路有问题,求大佬给看看