Cod sursa(job #1148372)

Utilizator xtreme77Patrick Sava xtreme77 Data 20 martie 2014 18:43:10
Problema Lista lui Andrei Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include <cstdio>
#define MOD 104659
#define mini 30
#define mult 100000
int mat[mini][mini],S[mini][mult];
int n,i,k,s,l,j;
char c1,c2;

int main(){
	freopen("nrcuv.in","r",stdin);
	freopen("nrcuv.out","w",stdout);
	scanf("%d%d",&n,&k);
	for(i=1;i<=k;i++){
		scanf("%c%c",&c1,&c2);
		mat[c1-'a'][c2-'a']=mat[c2-'a'][c1-'a']=1;
	}
	for(i=0;i<=25;i++)
		S[i][1]=1;
	for(i=2;i<=n;i++)
		for(j=0;j<=25;j++)
			for(l=0;l<=25;l++)
				if(mat[j][l]==0)
					S[j][i]+=S[l][i-1],S[j][i]%=MOD;
	for(i=0;i<=25;i++)
		s+=S[i][n],s=s%MOD;

	printf("%d\n",s);
	return 0;
}