Cod sursa(job #1807514)

Utilizator robertispasIspas Robert robertispas Data 16 noiembrie 2016 17:52:10
Problema Lista lui Andrei Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <iostream>
#include <fstream>

using namespace std;

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

const int MOD = 104659;
int mat[1003][27];
bool l[27][27];

int main()
{
    int n, m, i, j, k, rez;
    char l1, l2;
    in>>n>>m;
    for(i = 1; i <= m; i++)
    {
        in >> l1 >> l2;
        l[l1 - 'a' + 1][l2 - 'a' + 1] = l[l2 - 'a' + 1][l1 - 'a' + 1] = true;
    }
    for(i = 1; i <= 26; i++)
        mat[1][i] = 1;
    for(i = 2; i <= n; i++){
        for(j = 1; j <= 26; j++)
            for(k = 1; k <= 26; k++)
            {
                if(!l[j][k])
                    mat[i][j] = (mat[i][j]+mat[i-1][k]) % MOD;
            }
    }
    for(i = 1; i <= 26; i++)
        rez = (rez + mat[n][i]) % MOD;
    out<<rez;
    return 0;
}