记录编号 3683 评测结果 AAAAAAAAAA
题目名称 词链 最终得分 100
用户昵称 Gravatarzqzas 是否通过 通过
代码语言 C++ 运行时间 0.090 s
提交时间 2008-10-09 08:51:40 内存使用 0.83 MiB
显示代码纯文本
#include <iostream>

#define MAXN 10001
#define MAXLONG 52

using namespace std;

int n,ans,f[MAXN],len[MAXN];
char data[MAXN][MAXLONG];

void run()
{
	int i,j,k,max,flag;
	f[n-1]=1;
	for (i=n-2;i>=0;i--)
	{
		max=0;
		for (j=i+1;j<n;j++)
		{
			if (len[j]<=len[i])
				break;
			//check
			flag=1;
			for (k=0;k<len[i];k++)
				if (data[i][k]!=data[j][k])
				{
					flag=0;
					break;
				}
			if (flag)
			{
				if (f[j]>max)
					max=f[j];
			}
			else
				break;
		}
		f[i]=max+1;
	}
	ans=0;
	for (i=0;i<n;i++)
		if (f[i]>ans)
			ans=f[i];
}

void ini()
{
	int i;
	cin>>n;
	for (i=0;i<n;i++)
	{
		scanf("%s",&data[i]);
		len[i]=strlen(data[i]);
		if (!(data[i][len[i]-1]>='a' && data[i][len[i]-1]<='z'))
		{
			data[i][len[i]-1]=0;
			len[i]--;
		}
	}
}

int main()
{
	freopen("link.in","r",stdin);
	freopen("link.out","w",stdout);
	ini();
	run();
	cout<<ans;
	return 0;
}