Cod sursa(job #3197902)

Utilizator Mihai_OctMihai Octavian Mihai_Oct Data 27 ianuarie 2024 17:25:52
Problema Lista lui Andrei Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("nrcuv.in");
ofstream fout("nrcuv.out");
const int ult = 'z' - 'a';
const int mod = 104659;
int n, t, i, j, k, r, d[32][2002];
bool a[32][32];
char c1, c2;

int main() {
    fin >> n >> t;
    while(t--) {
        fin >> c1 >> c2;
        a[c1 - 'a'][c2 - 'a'] = true;
        a[c2 - 'a'][c1 - 'a'] = true;
    }
    for(i = 0; i <= ult; i++) d[i - 'a'][1] = 1;
    for(i = 2; i <= n; i++) {
        for(j = 0; j <= ult; j++) {
            for(k = 0; k <= ult; k++) {
                if(a[j][k] == 0) d[j][i] = (d[j][i] + d[k][i - 1]) % mod;
            }
        }
    }
    for(i = 0; i <= ult; i++) r = (r + d[i][n]) % mod;
    fout << r;

    return 0;
}