Cod sursa(job #791862)

Utilizator ephgstefana gal ephg Data 25 septembrie 2012 17:20:05
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 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(j=2;j<=n;++j){
		for(i=0;i<26;++i){
			for(k=0;k<26;++k){
				if(pot[i][k]==0){
					//fprintf(stderr,"%d %d\n",i,k);
					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;
}