Cod sursa(job #2339767)

Utilizator cristina-criCristina cristina-cri Data 9 februarie 2019 11:45:11
Problema Lista lui Andrei Scor 5
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <cstdio>
#define MOD 104659

using namespace std;

int n, m, frecv[28][28], fr[28], dp[1005][28];
char l1, l2;

void dinamica()
{
    for(int i=1; i<=n; i++)
    {
        int nr=0;
        for(int j=0; j<26; j++)
        {
            for(int k=0; k<26; k++)
                if(frecv[j][k])
                    dp[i][j]=1LL*(dp[i-1][j]+dp[i][j])%MOD;
        }
    }
}

int main()
{

    freopen("nrcuv.in", "r", stdin);
    freopen("nrcuv.out", "w", stdout);

    scanf("%d %d\n", &n, &m);
    for(int i=0; i<26; i++)
        dp[1][i]=1;
    for(int i=1; i<=m; i++)
    {
        scanf("%c %c\n", &l1, &l2);
        frecv[l1-'a'][l2-'a']=1;
        frecv[l2-'a'][l1-'a']=1;
    }

    for(int i=0; i<26; i++)
    {
        int nr=0;
        for(int j=0; j<26; j++)
            nr+=frecv[i][j];
        fr[i]=nr;
    }
    dinamica();
    int nr=0;
    for(int i=0; i<26; i++)
        nr+=dp[n][i];
    printf("%d", nr);


    return 0;
}