Cod sursa(job #1885629)

Utilizator mirunazMiruna Zavelca mirunaz Data 20 februarie 2017 10:16:52
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <cstdio>
using namespace std;

int n, m, s, d[1001][27];
char c1, c2, a[27][27];

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