Cod sursa(job #1807551)

Utilizator robertispasIspas Robert robertispas Data 16 noiembrie 2016 18:13:28
Problema Lista lui Andrei Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <iostream>
#include <fstream>
#define MOD 104659

using namespace std;

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

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;
}