Cod sursa(job #462379)

Utilizator mihai995mihai995 mihai995 Data 10 iunie 2010 17:19:32
Problema Subsir crescator maximal Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include <cstdio>
#include <cstring>

char list[20001][21];
short int v[26],cuv[27],p[20001];

void rec(int x)
{
	if (!x)
		return;
	rec(p[x]);
	printf("%s\n",list[x]);
}

int main()
{
	int i,nr=0,x;
	freopen("text3.in","r",stdin);
	freopen("text3.out","w",stdout);
	while (scanf("%s",list[++nr])!=EOF);
	for (i=1;i<nr;i++)
		if (v[list[i][0]-'a']+1>v[list[i][strlen(list[i])-1]-'a'])
		{
			if (v[list[i][0]-'a']!=0)
				p[i]=cuv[list[i][0]-'a'];
			v[list[i][strlen(list[i])-1]-'a']=v[list[i][0]-'a']+1;
			cuv[list[i][strlen(list[i])-1]-'a']=i;
		}
	x=1;
	for (i=0;i<26;i++)
		if (v[i]>v[x])
			x=i;
	printf("%d\n%d\n",nr-1,nr-v[x]-1);
	rec(cuv[x]);
	return 0;
}