Cod sursa(job #1049651)

Utilizator calin13Calin Nicolau calin13 Data 7 decembrie 2013 17:21:15
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <cstdio>
#define NRMOD 104659

int d[1005][26];
bool s[26][26];

int main()
{
    FILE *f = fopen ("nrcuv.in" , "r");
    FILE *g = fopen ("nrcuv.out" , "w");

    int n, m; fscanf(f, "%i%i\n", &n, &m);
    char x, y;
    int i, j, k;

    for (i = 0; i < m; ++i)
    {
        fscanf(f, "%c %c\n", &x, &y);
        s[x-'a'][y-'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 (k = 0; k < 26; ++k)
                if (!s[k][j] && !s[j][k])
                    d[i][j] = d[i][j]%NRMOD + d[i-1][k]%NRMOD;

    int ans = 0;
    for (i = 0; i < 26; ++i)
        ans = ans % NRMOD + d[n][i]% NRMOD;

    fprintf(g, "%i", ans% NRMOD);

    fclose(f);
    fclose(g);
    return 0;
}