Cod sursa(job #791844)

Utilizator ephgstefana gal ephg Data 25 septembrie 2012 16:39:21
Problema Lista lui Andrei Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include<cstdio>
#define BM 1005
#define mod 104659
int ma[30][BM],pot[30][30],n,m;
int main (){
	int i,j,k,s=0;
	char a,b;
	freopen("nrcuv.in","r",stdin);
	freopen("nrcuv.out","w",stdout);
	scanf("%d %d",&n,&m);
	for(i=1;i<=m;++i){
		scanf("\n%c %c",&a,&b);
		pot[a-'a'][b-'a']=1;
		pot[b-'a'][a-'a']=1;
	}
	for(i=0;i<26;++i)ma[i][1]=1;
	for(i=0;i<26;++i){
		for(j=1;j<=n;++j){
			for(k=0;k<26;++k){
				if(pot[i][k]==0){
					ma[i][j]+=ma[k][j-1];
					if(ma[i][j]>mod)ma[i][j]%=mod;
				}
			}
		}
	}
	for(i=0;i<26;++i){
		s+=ma[i][n];
		if(s>mod)s%=mod;
	}
	printf("%d",s);
	return 0;
}