Cod sursa(job #1846094)

Utilizator VasilescuVasilescu Eliza Vasilescu Data 12 ianuarie 2017 10:13:26
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <cstdio>

using namespace std;

const int MOD=104659;
int a[26][26], v[1000][26];

int main()
{
    FILE *fin, *fout;
    int n, m, i, j, k, s;
    char x, y;
    fin = fopen("nrcuv.in", "r");
    fout = fopen("nrcuv.out", "w");

    fscanf(fin, "%d %d\n", &n, &m);
    for(i = 0 ; i < m ; i++){
        fscanf(fin, "%c %c\n", &x, &y);
        a[x-'a'][y-'a'] = 1;
        a[y-'a'][x-'a'] = 1;
    }
    for(i=0;i<26;i++){
        v[1][i] = 1;
    }
    for(i=2;i<=n;i++){
        for(j=0;j<26;j++){
            s=0;
            for(k=0;k<26;k++){
                if(a[k][j]==0)
                    s=((s+v[i-1][k])%MOD);
            }
            v[i][j]=s;
        }
    }
    s=0;
    for(i=0;i<26;i++)
        s=((s+v[n][i])%MOD);

    fprintf(fout, "%d", s);
    return 0;
}