Cod sursa(job #2339748)

Utilizator ana_maria_zotaZota Ana Maria ana_maria_zota Data 9 februarie 2019 11:24:51
Problema Lista lui Andrei Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <iostream>
#include <cstdio>
#define MOD 104659
using namespace std;
int n,m;
char l1,l2;
int dp[1005][1005],ap[30][30],fr[30];
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])))%MOD;
        }
    }
}
int main()
{
     freopen("nrcuv.in","r",stdin);
     freopen("nrcuv.out","w",stdout);
     scanf("%d%d",&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);
         ap[l1-'a'][l2-'a']=1;
         ap[l2-'a'][l1-'a']=1;
     }
     for(int i=0;i<26;i++)
     {
         int nr=0;
         for(int j=0;j<26;j++)
            nr+=ap[i][j];
         fr[i]=nr;

     }
     dinamica();
     int sol=0;
     for(int i=0;i<26;i++)
        sol+=dp[n][i];
     printf("%d",sol%MOD);

    return 0;
}