Cod sursa(job #1712696)

Utilizator andreicoman299Coman Andrei andreicoman299 Data 3 iunie 2016 13:34:44
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <stdio.h>
#include <stdlib.h>
#define MOD 104659

int v[26][26];
int d[1001][26];
int main(){
    int n, m, i, j;
    FILE*fi,*fo;
    fi=fopen("nrcuv.in","r");
    fo=fopen("nrcuv.out","w");
    fscanf(fi,"%d%d", &n, &m);
    for(int i=0;i<m;i++){
        fgetc(fi);
        char c1=fgetc(fi);
        fgetc(fi);
        char c2=fgetc(fi);
        v[c1-'a'][c2-'a']=v[c2-'a'][c1-'a']=1;
    }
    for(int i=0;i<26;i++)
        d[1][i]=1;
    for(int i=2;i<=n;i++)
        for(int l=0;l<26;l++){
            for(int k=0;k<26;k++)
                if(v[l][k]==0)
                    d[i][l]+=d[i-1][k];
            d[i][l]%=MOD;
        }
    int sum=0;
    for(int i=0;i<26;i++)
        sum=sum+d[n][i];
    fprintf(fo,"%d", sum%MOD);
    fclose(fi);
    fclose(fo);
    return 0;
}