Cod sursa(job #2367747)

Utilizator Mirela_MagdalenaCatrina Mirela Mirela_Magdalena Data 5 martie 2019 12:04:01
Problema Lista lui Andrei Scor 100
Compilator cpp-64 Status done
Runda bv_10 Marime 0.88 kb
#include <cstdio>

using namespace std;

int n, m;
int inu[30][30];
long long dp[1010][30];
long long MOD = 104659;
void cit()
{
    char c1, c2;
    for(int i=1; i<=m; i++)
    {
        scanf("%c %c\n", &c1, &c2);
        inu[c1-'a'][c2-'a'] = 1;
    }
}

int dpp()
{
    for(int i=0; i<=26; i++)
        dp[1][i] = 1;
    for(int i=2; i<=n; i++)
    {
        for(int j=0; j<26; j++)
        {
            for(int k=0; k<26; k++)
                if(inu[j][k] == 0 && inu[k][j] == 0)
                    dp[i][j] = (dp[i][j] + dp[i-1][k]) % MOD;
        }
    }
    int nr=0;
    for(int i=0; i<26; i++)
    {
        nr = (dp[n][i] + nr) % MOD;
    }
    return (nr%MOD);
}



int main()
{
    freopen("nrcuv.in", "r", stdin);
    freopen("nrcuv.out", "w", stdout);
    scanf("%d %d\n", &n, &m);
    cit();
    printf("%d", dpp());
    return 0;
}