Cod sursa(job #47819)

Utilizator marius135Dumitran Adrian Marius marius135 Data 4 aprilie 2007 00:18:16
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include<stdio.h>

long v[32][32];
long x[2048][32];

int main()
{
	long i,n,j,l,k,m,s;
	char a[2],b[2];
	freopen("nrcuv.in","r",stdin);
	freopen("nrcuv.out","w",stdout);
	
	scanf("%ld%ld",&n,&k);
	for(i=1;i<=k;i++)
		{
		scanf("%s %s",a,b);
		v[a[0]-'a'+1][b[0]-'a'+1] = v[b[0]-'a'+1][a[0]-'a'+1] =1;
		}
	m = 26;
	for(i=1;i<=m;i++)
		x[1][i] = 1;
	for(l=1;l<n;l++)
		for(i=1;i<=m;i++)
			{
			x[l][i]%=104659;
			
			for(j=1;j<=m;j++)
				if(v[i][j] == 0)
					x[l+1][j] += x[l][i];
			}
	s =0;
	for(i=1;i<=m;i++)
		s+=x[n][i];
	s%=104659;
	printf("%ld\n",s);
}