Pagini recente » Cod sursa (job #1921744) | Cod sursa (job #1821147) | Cod sursa (job #3258267) | Cod sursa (job #177529) | Cod sursa (job #3304040)
#include <stdio.h>
#define MAXN 1000
#define MOD 104659
#define SIGMA 26
int dp[MAXN+1][SIGMA];
int v[SIGMA][SIGMA];
int main()
{
FILE *fin, *fout;
int n,m,i,j,k,total;
char c1,c2;
fin=fopen("nrcuv.in", "r");
fscanf(fin, "%d%d ", &n, &m);
for(i=0; i<m; i++){
c1=fgetc(fin);
fgetc(fin);
c2=fgetc(fin);
fgetc(fin);
c1-='a'; c2-='a';
v[c1][c2]=1;
v[c2][c1]=1;
}
fclose(fin);
for(i=0; i<SIGMA; i++){
dp[1][i]=1;
}
for(i=2; i<=n; i++)
for(j=0; j<SIGMA; j++)
for(k=0; k<SIGMA; k++)
if(v[j][k]==0)
dp[i][j]=(dp[i][j]+dp[i-1][k])%MOD;
total=0;
for(i=0; i<SIGMA; i++){
total=(total+dp[n][i])%MOD;
}
fout=fopen("nrcuv.out", "w");
fprintf(fout, "%d", total);
fclose(fout);
return 0;
}