Cod sursa(job #377357)

Utilizator Magnuscont cu nume gresit sau fals Magnus Data 24 decembrie 2009 11:25:34
Problema Lista lui Andrei Scor 95
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include <stdio.h>
#include <string.h>

long v[27][27],d[1001][27];

int main()
{
	long n,m,i,j,k;
	char a[8];
	freopen("nrcuv.in","r",stdin);
	freopen("nrcuv.out","w",stdout);
	scanf("%ld%ld\n",&n,&m);
	for (i=1;i<m+1;i++)
	{
		fgets(a,5,stdin);
		v[(int)a[0]-96][(int)a[2]-96]=1;
		v[(int)a[2]-96][(int)a[0]-96]=1;
	}
	for (i=1;i<27;i++) d[1][i]=1;
	for (i=1;i<n;i++)
		for (j=1;j<27;j++)
			for (k=1;k<27;k++) if ((v[j][k]==0)&&(v[k][j]==0))
			{
				d[i+1][k]=(d[i+1][k]+d[i][j])%104659;
				d[i+1][0]=(d[i+1][0]+d[i][j])%104659;
			}
	printf("%ld",d[n][0]);
	return 0;
}