Pagini recente » Cod sursa (job #3205910) | Cod sursa (job #765429) | Cod sursa (job #531632) | Cod sursa (job #267335) | Cod sursa (job #648807)
Cod sursa(job #648807)
#include <stdio.h>
#define nmax 1010
#define mmax 2010
#define modulo 104659
bool nu_merg[nmax][nmax];
int dp[nmax][26];
int main(){
int n,m;
FILE *fin=fopen("nrcuv.in","r");
fscanf(fin,"%d%d\n",&n,&m);
int i,j,k;
char a,b;
for(i=0;i<m;i++){
fscanf(fin,"%c %c\n",&a,&b);
nu_merg[a-'a'][b-'a']=nu_merg[b-'a'][a-'a']=1;
}
for(j=0;j<26;j++)dp[1][j]=1;
for(i=1;i<n;i++){//calculez linia i+1
for(j=0;j<26;j++){
for(k=0;k<26;k++){
if(nu_merg[j][k]==0){//adica daca merg j si k
dp[i+1][k]= (dp[i+1][k]+dp[i][j])%modulo;
}
}
}
}
//raspunsul
int suma=0;
for(i=0;i<26;i++)
suma=(suma+dp[n][i])%modulo;
FILE *fout=fopen("nrcuv.out","w");
fprintf(fout,"%d\n",suma);
return 0;
}