Cod sursa(job #1783390)

Utilizator PopoviciRobertPopovici Robert PopoviciRobert Data 18 octombrie 2016 23:10:45
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda cerculdeinfo-lectia3-programaredinamica1 Marime 0.71 kb
#include <cstdio>
#define MAXC 26
#define MAXN 1000
#define MOD 104659
int mat[MAXC][MAXC],d[MAXN+1][26];
int main(){
    FILE*fi,*fout;
    int n,m,i,j,x;
    char a,b;
    fi=fopen("nrcuv.in" ,"r");
    fout=fopen("nrcuv.out" ,"w");
    fscanf(fi,"%d%d " ,&n,&m);
    for(i=0;i<m;i++){
         fscanf(fi,"%c %c " ,&a,&b);
         mat[a-'a'][b-'a']=1;
         mat[b-'a'][a-'a']=1;
    }
    for(i=0;i<26;i++)
       d[1][i]=1;
    for(i=2;i<=n;i++)
        for(j=0;j<26;j++)
            for(x=0;x<26;x++)
               if(mat[j][x]==0)
                   d[i][j]=(d[i][j]+d[i-1][x])%MOD;
    int s=0;
    for(i=0;i<26;i++)
       s=(s+d[n][i])%MOD;
    fprintf(fout,"%d" ,s);
    fclose(fi);
    fclose(fout);
    return 0;
}