Cod sursa(job #632574)

Utilizator SchumiDumitru Andrei Georgian Schumi Data 11 noiembrie 2011 17:49:50
Problema Lista lui Andrei Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <cstdio>

using namespace std;

int n, m, lit[27][27], d[1001][27], sol;
char l1, l2;

int main()
{
    int i, j, k;
    freopen ("nrcuv.in", "r", stdin);
    freopen ("nrcuv.out", "w", stdout);
    scanf ("%d %d", &n, &m);
    for(i = 1; i <= m; ++i) {
        scanf("%c %c", &l1, &l2);
        lit[l1 - 'a' + 1][l2 - 'a' + 1] = 1;
        lit[l2 - 'a' + 1][l1 - 'a' + 1] = 1;
    }
    for(i = 1; i <= 26; ++i)
        d[1][i] = 1;
    for(i = 2; i <= n; ++i) {
        for(j = 1; j <= 26; ++j) {
            for(k = 1; k <= 26; ++k) {
                if(!lit[j][k])
                    d[i][j] = (d[i][j] + d[i - 1][k]) % 104659;
            }
        }
    }
    for(i = 1; i <= 26; ++i)
        sol = (sol + d[n][i]) % 104659;
    printf("%d", sol);
    return 0;
}