Cod sursa(job #1779846)

Utilizator tiberiu.bucur17Tiberiu Constantin Emanoil Bucur tiberiu.bucur17 Data 15 octombrie 2016 17:23:50
Problema Lista lui Andrei Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <stdio.h>
#define MOD 104659
char mat[26][26];
int cuv[1000][26];
int main()
{
    FILE *fin,*fout;
    fin=fopen("nrcuv.in","r");
    fout=fopen("nrcuv.out","w");
    int n,m,rez,i,j,k;
    char a,b;
    fscanf(fin,"%d%d",&n,&m);
    fgetc(fin);
    for(i=0;i<m;i++)
    {
        a=fgetc(fin);fgetc(fin);
        b=fgetc(fin);fgetc(fin);
        mat[a-'a'][b-'a']=mat[b-'a'][a-'a']=1;
    }
    for(i=0;i<26;i++)
        cuv[0][i]=1;
    for(i=1;i<n;i++)
        for(j=0;j<26;j++)
            for(k=0;k<26;k++)
                if(!mat[j][k])
                    cuv[i][k]=(cuv[i][k]+cuv[i-1][j])%MOD;
    rez=0;--n;
    for(i=0;i<26;i++)
        rez=(rez+cuv[n][i])%MOD;
    fprintf(fout,"%d",rez);
    fclose(fin);
    fclose(fout);
    return 0;
}