Cod sursa(job #2339732)

Utilizator ana.pintiliciucAna Maria Pintiliciuc ana.pintiliciuc Data 9 februarie 2019 11:18:44
Problema Lista lui Andrei Scor 35
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <cstdio>

using namespace std;

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

void dinamica()
{
    for(int i=1;i<=n;i++)
    {
        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 sol=0;
    for(int i=0;i<26;i++)
        sol+=dp[n][i];
    printf("%d", sol);

    return 0;
}