Cod sursa(job #1874334)

Utilizator raluca1234Tudor Raluca raluca1234 Data 9 februarie 2017 22:03:44
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <cstdio>

#define nrLetters 26
#define maxN 1000
#define MOD 104659

using namespace std;

bool r[nrLetters+1][nrLetters+1];
int d[maxN+1][nrLetters+1];

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