Cod sursa(job #594208)

Utilizator valentin.harsanValentin Harsan valentin.harsan Data 6 iunie 2011 16:38:07
Problema Lista lui Andrei Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include<stdio.h>
#include<string.h>
#define M 104659
#define N 51

bool x[30][30];
int n,m,p[1002][30];
char a,b;

int main() {
	int i,sum=0,j,k;
	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",&a,&b);
		a-='a'+1;
		b-='a'+1;
		x[(int) a][(int) b]=1; x[(int) b][(int) a]=1;
	}
	for(i=1;i<=26;++i)
		p[1][i] = 1;
	for(i = 2; i <= n; ++i) 
		for(j = 1; j <= 26; ++j)
			for(k = 1; k <= 26; ++k)
				if(!x[j][k])
					p[i][j]=(p[i][j]+p[i-1][k])%104659;
	
	for(i=1;i<=26;++i)
		sum = (sum + p[n][i])%104659;
	printf("%d\n",sum);
	return 0;
}