Cod sursa(job #2339731)

Utilizator cristina-criCristina cristina-cri Data 9 februarie 2019 11:18:43
Problema Lista lui Andrei Scor 35
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <cstdio>

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++)
        {
            dp[i][j]+=(dp[i-1][j]*(26-fr[j]));
        }
    }
}

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;
}