Cod sursa(job #1023767)

Utilizator tudorv96Tudor Varan tudorv96 Data 7 noiembrie 2013 18:19:10
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <fstream>
using namespace std;

ifstream fin ("nrcuv.in");
ofstream fout ("nrcuv.out");

const int L = 26, N = 1005, mod = 104659;
bool ok[L][L];
int d[N][L], n, m;

int main() {
    fin >> n >> m;
    while (m--) {
        char x, y;
        fin >> x >> y;
        ok[x - 'a'][y - 'a'] = ok[y - 'a'][x - 'a'] = 1;
    }
    for (int i = 0; i < L; ++i)
        d[1][i] = 1;
    for (int i = 2; i <= n; ++i)
        for (int j = 0; j < L; ++j)
            for (int k = 0; k < L; ++k)
                if (!ok[j][k])
                    d[i][j] = (d[i][j] + d[i-1][k]) % mod;
    int s = 0;
    for (int i = 0; i < L; ++i)
        s = (s + d[n][i]) % mod;
    fout << s;
}