WA#2#3,救救孩子
查看原帖
WA#2#3,救救孩子
200104
ZTY_loves_YYM楼主2020/8/22 15:22
#include<bits/stdc++.h>
using namespace std;
int n,ans,vis[22]={0};
char s[22][100],ch;
void dfs(int x,int len)
{
	ans=max(ans,len);
	int xx,ii;
	for(int i=1;i<=n;i++)
	{
		if(vis[i]<2)
		{
			for( xx=0;xx<strlen(s[x]);xx++)
			{
				if(s[x][xx]==s[i][0])
				{
					for( ii=0;ii+xx<=strlen(s[x])&&ii<strlen(s[i]);ii++)
					{
						if(s[x][xx+ii]!=s[i][ii])
						{
							break;
						}
					}
					if(ii+xx==strlen(s[x])&&xx!=0&&ii!=strlen(s[i]))
					{
						vis[i]++;
						dfs(i,len+strlen(s[i])-ii);
						vis[i]--;
						break;
					}
				}
			}
		}
	}
	return ;
}
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		cin>>s[i];
	}
	getchar();
	cin>>ch;
	for(int i=1;i<=n;i++)
	{
		if(s[i][0]==ch)
		{
			vis[i]++;
			dfs(i,strlen(s[i]));
			vis[i]--;
		}
	}
	cout<<ans<<endl;
	return 0;
}
2020/8/22 15:22
加载中...