Cod sursa(job #1783598)

Utilizator AnaRaduAna-Maria Radu AnaRadu Data 19 octombrie 2016 09:59:21
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda cerculdeinfo-lectia3-programaredinamica1 Marime 0.8 kb
#include <stdio.h>
#define MOD 104659
#define lim 26
#define nmax 1001
int d[nmax][lim],ok[lim][lim];
int main(){
    FILE *fin,*fout;
    fin=fopen("nrcuv.in","r");
    fout=fopen("nrcuv.out","w");
    int i,j,n,m,k,rasp=0;
    char x,y,bin;
    fscanf(fin,"%d%d\n",&n,&m);
    for(i=1;i<=m;i++){
        x=fgetc(fin);
        bin=fgetc(fin);
        y=fgetc(fin);
        bin=fgetc(fin);
        ok[x-'a'][y-'a']=ok[y-'a'][x-'a']=1;
    }
    for(j=0;j<lim;j++)
        d[1][j]=1;
    for(i=2;i<=n;i++)
        for(j=0;j<lim;j++)
            for(k=0;k<lim;k++)
                if(ok[k][j]==0)
                    d[i][j]=(d[i][j]+d[i-1][k])%MOD;
    for(j=0;j<lim;j++)
        rasp=(rasp+d[n][j])%MOD;
    fprintf(fout,"%d",rasp);
    fclose(fin);
    fclose(fout);
    return 0;
}