Cod sursa(job #2086271)

Utilizator ContDeRacistAliniateEBlat ContDeRacist Data 11 decembrie 2017 19:09:13
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <iostream>
#include <cstdio>

using namespace std;

bool b[26][26];
int d[1010][26];

const int MOD = 104659;

int main()
{
    freopen("nrcuv.out", "w", stdout);
    freopen("nrcuv.in", "r", stdin);
    int n, k, sumf = 0;
    char x, y;
    cin >> n >> k;
    for (int i = 0; i < k; ++i) {
        cin >> x >> y;
        b[x - 'a'][y - 'a'] = true;
        b[y - 'a'][x - 'a'] = true;
    }
    for (int i = 0; i < 26; ++i) {
        d[1][i] = 1;
    }
    for (int i = 2; i <= n; ++i) {
        for (int j = 0; j < 26; ++j) {
            for (int k = 0; k < 26; ++k) {
                if (!b[k][j]) {
                    d[i][j] += d[i - 1][k];
                    d[i][j] %= MOD;
                }
            }
        }
    }
    for (int j = 0; j < 26; ++j) {
        sumf += d[n][j];
        sumf %= MOD;
    }
    cout << sumf;
    return 0;
}