Cod sursa(job #657569)

Utilizator Marius96Marius Gavrilescu Marius96 Data 6 ianuarie 2012 19:36:08
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.53 kb
#include<cstdio>
bool v[26][26];
int o[26],c[26];
int main(){
	int n,m;
	freopen("nrcuv.in","r",stdin);
	freopen("nrcuv.out","w",stdout);
	scanf("%d%d\n",&n,&m);
	for(int i=0;i<m;i++){
		char c1,c2;
		scanf("%c %c\n",&c1,&c2);
		v[c1-'a'][c2-'a']=v[c2-'a'][c1-'a']=1;
	}
	for(int i=0;i<26;i++)
		o[i]=1;
	while(--n){
		for(int i=0;i<26;i++)
			for(int j=0;j<26;j++)
				if(!v[i][j])
					c[j]=(c[j]+o[i])%104659;
		for(int i=0;i<26;i++)
			o[i]=c[i],c[i]=0;
	}
	int r=0;
	for(int i=0;i<26;i++)
		r=(r+o[i])%104659;
	printf("%d",r);
	return 0;
}