Cod sursa(job #992400)

Utilizator TarabanDragosTaraban Dragos-Petru TarabanDragos Data 1 septembrie 2013 19:11:39
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include<cstdio>
int s,k,n,m,i,j,v[27][1001],x[27][27];
char a,b;
FILE *f,*g;
int main(){
    f=fopen("nrcuv.in","r");
    g=fopen("nrcuv.out","w");
    fscanf(f,"%d%d\n",&n,&m);
    for(i=1;i<=m;i++){
        fscanf(f,"%c %c\n",&a,&b);
        x[a-'a'][b-'a']=1;
        x[b-'a'][a-'a']=1;
    }
    for(i=0;i<=25;i++){
        v[i][1]=1;
    }
    for(i=1;i<=n;i++){
        for(j=0;j<=25;j++){
            for(k=0;k<=25;k++){
                if(x[j][k]==0 && x[k][j]==0)
                    v[j][i]=(v[j][i]+v[k][i-1])%104659;
            }
        }
    }
    s=0;
    for(i=0;i<26;i++){
        s+=v[i][n];
        s=s%104659;
    }
    fprintf(g,"%d",s);
    fclose(f);
    fclose(g);
    return 0;
}