Cod sursa(job #402363)

Utilizator ciprianfFarcasanu Alexandru Ciprian ciprianf Data 23 februarie 2010 20:18:58
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <stdio.h>
#define NMAX 1024
#define MOD 104659
int a[NMAX][26];
int n, m;
bool b[26][26];
int main(){
	freopen("nrcuv.in" ,"r", stdin);
	freopen("nrcuv.out", "w", stdout);
	scanf("%d%d\n", &n, &m);
	for(int i = 1; i <= m; ++i){
		char x, y;
		scanf("%c%c%c\n",&x, &y, &y);
		b[x-'a'][y-'a'] = 1;
		b[y-'a'][x-'a'] = 1;
	}
	for(int i = 0; i <= 25; ++i)
		a[1][i] = 1;
	for(int i = 2; i <= n; ++i)
		for(int j = 0; j <= 25; ++j)
			for(int p = 0; p <= 25; ++p)
				if(!b[p][j]) a[i][j] = (a[i][j] + a[i-1][p]) %MOD;
	int s = 0;
	for(int i = 0; i <= 25; ++i)
		s = (s + a[n][i]) % MOD;
	printf("%d\n", s);
	return 0;
}