Cod sursa(job #1429673)

Utilizator greenadexIulia Harasim greenadex Data 6 mai 2015 22:07:43
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <fstream>

using namespace std;

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

const int p = 104659;

int n, m, r[26][26], dp[1001][26], sum;

int main() {

    fin >> n >> m;

    for(char a, b; m; m--) {

        fin >> a >> b;
        r[a - 'a'][b - 'a'] = 1;
        r[b - 'a'][a - 'a'] = 1;
    }

    for (int i = 0; i <= 25; i++)
        dp[1][i] = 1;

    for (int i = 2; i <= n; i++)
        for (int j = 0; j <= 25; j++)
            for (int k  = 0; k <= 25; k++)
                if (!r[j][k])
                    dp[i][j] = (dp[i][j] + dp[i - 1][k]) % p;

    for (int i = 0; i <= 25; i++)
        sum = (sum + dp[n][i]) % p;

    fout << sum;

    return 0;
}