Cod sursa(job #374933)

Utilizator Magnuscont cu nume gresit sau fals Magnus Data 18 decembrie 2009 19:56:10
Problema Lista lui Andrei Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include <stdio.h>
#include <string.h>

int v[27][27],d[1000][27];

int main()
{
	int n,m,i,j,k;
	char a[4];
	freopen("nrcuv.in","r",stdin);
	freopen("nrcuv.out","w",stdout);
	scanf("%d%d\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)
			{
				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("%d",d[n][0]);
	return 0;
}