Cod sursa(job #2813368)

Utilizator Mihai180315Mihai Smarandache Mihai180315 Data 6 decembrie 2021 14:39:07
Problema Lista lui Andrei Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <iostream>
#include <fstream>

using namespace std;
const int NMAX = 1000;
const int LMAX = 26;
const int MOD = 104659;

int d[NMAX + 5][LMAX + 5];
bool a[LMAX + 5][LMAX + 5];
char l1, l2;
int L1, L2;

int main()
{
    ifstream fin("nrcuv.in");
    ofstream fout("nrcuv.out");
    int n, m;
    fin >> n >> m;

    for (int i = 1; i <= m; ++i) {
        fin >> l1 >> l2;
        L1 = l1 - 'a' + 1;
        L2 = l2 - 'a' + 1;
        a[L1][L2] = a[L2][L1] = 1;
    }
    for (int i = 1; i <= LMAX; ++i) {
        d[1][i] = 1;
    }
    for (int i = 2; i <= n; ++i) {
        for (int j = 1; j <= LMAX; ++j) {
            for (int k = 1; k <= LMAX; ++k) {
                if (a[j][k] == 0) {
                    d[i][j] = (d[i][j] + d[i - 1][k]) % MOD;
                }
            }
        }
    }

    int s = 0;
    for (int i = 1; i <= LMAX; ++i) {
        s = (s + d[n][i]) % MOD;

    }
    fout << s;
    return 0;
}