Cod sursa(job #1835254)

Utilizator vladdy47Bucur Vlad Andrei vladdy47 Data 26 decembrie 2016 16:48:48
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
# include <bits/stdc++.h>
# define MOD 104659

using namespace std;

const int Nmax = 1005;

int i, n, m, k, r;
char x, y;
int d[Nmax][200], yes[200][200];

int main ()
{
    freopen("nrcuv.in", "r", stdin);
    freopen("nrcuv.out", "w", stdout);

    scanf("%d %d\n", &n, &m);

    for (i = 1; i <= m; ++i) {
        scanf("%c %c\n", &x, &y);
        yes[x][y] = yes[y][x] = 1;
    }

    for (i = 'a'; i <= 'z'; ++i) d[1][i] = 1;

    for (i = 2; i <= n; ++i)
        for (k = 'a'; k <= 'z'; ++k)
            for (r = 'a'; r <= 'z'; ++r)
                if (!yes[k][r]) d[i][k] += d[i - 1][r], d[i][k] %= MOD;

    int ans = 0;

    for (i = 'a'; i <= 'z'; ++i)
        ans += d[n][i];

    ans %= MOD;

    printf("%d\n", ans);

    return 0;
}