Pagini recente » Cod sursa (job #1139828) | Cod sursa (job #1519333) | Cod sursa (job #2830947) | Cod sursa (job #681915) | Cod sursa (job #2611036)
#include <stdio.h>
#include <stdlib.h>
#define NMAX 1000
#define MOD 104659
int ok[26][26],d[27][NMAX+1];
int main()
{
FILE *fin,*fout;
fin=fopen("nrcuv.in","r");
fout=fopen("nrcuv.out","w");
int n,m,i,j,nr,c;
char a;
char b;
fscanf(fin,"%d%d\n",&n,&m);
for(i=1;i<=m;i++){
a=fgetc(fin);
fgetc(fin); ///spatiu
b=fgetc(fin);
ok[a-'a'][b-'a']=ok[b-'a'][a-'a']=1; ///marcam perechile interzise
fgetc(fin); ///\n
}
for(j=0;j<26;j++){ ///initializare
d[0][j]=1;
}
for(i=1;i<26;i++){
for(j=0;j<26;j++){
for(c=0;c<26;c++){
if(ok[j][c]!=1){
d[i][j]=(d[i][j]+d[i-1][c])%MOD;
}
}
}
}
nr=0;
for(j=0;j<26;j++){
nr=(nr+d[n-1][j])%MOD;
}
fprintf(fout,"%d",nr);
fclose(fin);
fclose(fout);
return 0;
}