Cod sursa(job #464966)

Utilizator aladinaladin aladinn aladin Data 22 iunie 2010 18:02:34
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include <cstdio>
#define MOD 104659
int ok[30][30];
int main()
{
	int k,k2,n,m,v[2][30],i,j,j2;
	char c1,c2;
	
	freopen("nrcuv.in","r",stdin);
	freopen("nrcuv.out","w",stdout);
	scanf("%d %d\n",&n,&m);
	for (i=1;i<=m;++i)
		{scanf("%c %c\n",&c1,&c2);
	     ok[c1-'a'][c2-'a']=ok[c2-'a'][c1-'a']=1;
		}
	for (i=0;i<=25;++i) v[1][i]=1;k=1;
	for (i=2;i<=n;++i)
	{
		k=i%2;k2=(i-1)%2;
		for (j=0;j<26;++j)
			for (j2=0,v[k][j]=0;j2<26;++j2)
				if (ok[j][j2]!=1)
					v[k][j]=(v[k][j]+v[k2][j2]) % MOD;
	}
    for (i=1;i<26;++i)
		v[k][0]=(v[k][0]+v[k][i]) % MOD;
	printf("%d",v[k][0]);
	return 0;}