Cod sursa(job #5442)

Utilizator blasterzMircea Dima blasterz Data 12 ianuarie 2007 15:05:01
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <cstdio>

int n, m;
int c[128][128];
int x[1024][27];
int sol=0;
	
void citire()
{
	freopen("nrcuv.in", "r", stdin);
	scanf("%d %d\n", &n, &m);
	int i;
	for(i=1;i<=m;i++)
	{
		char p, q;
		scanf("%c %c\n", &p, &q);
		c[p][q]=1;
		c[q][p]=1;
	}
}

void calc()
{
	int i, j, k;
	sol=0;
	
	for(i=0;i<26;i++)x[1][i]=1;
	
	for(i=2;i<=n;i++)
		for(j=0;j<26;j++)
			for(k=0;k<26;k++) if(!c[j+'a'][k+'a']) x[i][j]+=x[i-1][k], x[i][j]%=104659;
			
	for(i=0;i<26;i++) sol+=x[n][i],sol%=104659;
	printf("%d\n", sol%104659);
}


int main()
{
	freopen("nrcuv.out", "w", stdout);
	citire();
	calc();
	return 0;
}