Cod sursa(job #2178122)

Utilizator EclipseTepes Alexandru Eclipse Data 19 martie 2018 09:49:53
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <iostream>
#include <fstream>
#define MOD 104659
#define dMAX 1000
#define SIGMA 26

using namespace std;

int n, m, sigMatrix[dMAX + 5][SIGMA + 4];
char ch1, ch2;
bool alphabet[SIGMA + 4][SIGMA + 4];
unsigned long long int S;

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

int main()
{
    int i, j, k;
    fin >> n >> m;
    for (i = 1; i <= m; i++) {
        fin >> ch1 >> ch2;
        alphabet[ch1 - 'a' + 1][ch2 - 'a' + 1] = true;
        alphabet[ch2 - 'a' + 1][ch1 - 'a' + 1] = true;
    }
    for (i = 1; i <= SIGMA; i++) {
        sigMatrix[1][i] = true;
    }
    for (i = 2; i <= n; i++) {
        for (j = 1; j <= SIGMA; j++) {
            for (k = 1; k <= SIGMA; k++) {
                if (!alphabet[k][j])
                    sigMatrix[i][j] = (sigMatrix[i][j] + sigMatrix[i - 1][k]) % MOD;
            }
        }
    }
    for (i = 1; i <= SIGMA; i++) {
        S = (S + sigMatrix[n][i]) % MOD;
    }
    fout << S;
    return 0;
}