Cod sursa(job #681232)

Utilizator AndrewTheGreatAndrei Alexandrescu AndrewTheGreat Data 16 februarie 2012 19:43:56
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <iostream>
#include <fstream>

using namespace std;

int rele[200][200];
int bst[1028][200], N, M;
const int mod = 104659;
int main()
{
    ifstream in ("nrcuv.in");
    ofstream out ("nrcuv.out");

    in >> N >> M;

    int i;
    char j, k;
    char a, b;
    for(i = 1; i <= M; i++)
    {
        in >> a >> b;
        rele[a][b] = 1;
        rele[b][a] = 1;
    }

    for(j = 'a'; j <= 'z'; j++)
        bst[1][j] = 1;

    for(i = 2; i <= N; i++)
        for(j = 'a'; j <= 'z'; j++)
            for(k = 'a'; k <= 'z'; k++)
                if(!rele[j][k])
                    bst[i][k] = (bst[i][k] + bst[i - 1][j]) % mod;

    int Tot = 0;
    for(j = 'a'; j <= 'z'; j++)
        Tot += bst[N][j];

    Tot %= mod;
    out << Tot;

    return 0;
}