Cod sursa(job #449913)

Utilizator dexter_dexMutascu Adrian - Dragos dexter_dex Data 7 mai 2010 09:27:36
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <stdio.h>
#define Nmax 26
#define Mmax 1005
#define MOD 104659

int v[Nmax][Mmax], L[Nmax][Nmax];
int i, j, k, n, m, S;
char c1, c2;

int main (){
	
	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);
		L[c1-'a'][c2-'a'] = 1;
		L[c2-'a'][c1-'a'] = 1;
	}
	
	for (i = 0 ; i < 26 ; i++)
		v[i][1] = 1;
	
	for (j = 2 ; j <= n ; j++)
		for (i = 0 ; i < 26 ; i++)
			for (k = 0 ; k < 26 ; k++)
				if (L[k][i] == 0)
					v[i][j] = (v[i][j] + v[k][j-1])%MOD;
				
	for (i = 0 ; i < 26 ; i++)
		S = (S+v[i][n])%MOD;
	
	printf("%d", S);
	return 0;
}