Cod sursa(job #413088)

Utilizator pykhNeagoe Alexandru pykh Data 7 martie 2010 17:26:48
Problema Lista lui Andrei Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include<stdio.h>
const char in[]="nrcuv.in", out[]="nrcuv.out";
const int N=1005, mod=104659;

int a[N][28], n, m, w[27][27], i, j, k;
int main()
	{char x, y;
	
		freopen(in,"r",stdin);
		freopen(out,"w",stdout);
		scanf("%d%d\n", &n, &m);
		for(i = 1 ; i <= m; ++i)
		{
			scanf("%c %c\n",&x, &y);
			w[x - 'a' + 1][y - 'a' + 1]= 1;
		}
		for(j = 1; j <= 26; ++j)
			a[1][j]=1;
		for(i = 2; i <= n; ++i)
			for(j = 1; j <= 26; ++j)
				for(k = 1; k <= 26; ++k)
				if(w[j][k] or w[k][j])continue;
				else a[i][j] += a[i-1][k];a[i][j] %= mod;
				
			int s=0;
			for(i = 1; i <= 26; ++i)
				{s += a[n][i]; s %= mod;}
		printf("%d\n", s);
		return 0;
	}