Pagini recente » Cod sursa (job #559791) | Cod sursa (job #2873361) | Cod sursa (job #232678) | Cod sursa (job #1095128) | Cod sursa (job #567063)
Cod sursa(job #567063)
#include <stdio.h>
#include <string.h>
FILE *f=fopen("nrcuv.in","r");
FILE *g=fopen("nrcuv.out","w");
int n,m;
long op[2][26];
char rel[26][26];
void init(){
for(register int i=0;i<26;i++)
op[0][i]=1;
}
int main(void){
register int i,j;
fscanf(f,"%d %d\n",&n,&m);
char c1,c2;
for(i=1;i<=m;i++){
fscanf(f,"%c %c\n",&c1,&c2);
rel[c1-'a'][c2-'a']='1';
rel[c2-'a'][c1-'a']='1';
}
fclose(f);
init();
for(register int k=2;k<=n;k++){
for(i=0;i<26;i++){
for(j=0;j<26;j++){
if(rel[i][j]!='1'){
op[1][i]+=op[0][j];
op[1][i]%=104659;
}
}
}
memcpy(op[0],op[1],26*4);
memset(op[1],0,sizeof(op[1]));
}
long int sum=0;
for(i=0;i<26;i++){
sum+=op[0][i];
sum%=104659;
}
fprintf(g,"%ld",sum%104659);
fclose(g);
return 0;
}