Cod sursa(job #2396215)

Utilizator AlexutAlex Calinescu Alexut Data 3 aprilie 2019 12:15:08
Problema Lista lui Andrei Scor 100
Compilator cpp-64 Status done
Runda simulare_03_04_2019 Marime 0.67 kb
#include <cstdio>
using namespace std;
char x,y,o;
int n,m,dp[1010][30],v[30][30],i,j,k,sol;
int main()
{
    freopen("nrcuv.in","r",stdin);
    freopen("nrcuv.out","w",stdout);
    scanf("%d%d",&n,&m);
    for(; m; m--)
    {
        scanf("%c%c%c%c",&o,&x,&o,&y);
        x-='a';
        y-='a';
        v[x][y]=1;
        v[y][x]=1;
    }
    for(i=0; i<26; i++)
        dp[1][i]=1;

    for(i=2; i<=n; i++)
        for(j=0; j<26; j++)
            for(k=0; k<26; k++)
                if(!v[j][k])
                    dp[i][j]=(dp[i][j]+dp[i-1][k])%104659;
    for(i=0; i<26; i++)
        sol=(sol+dp[n][i])%104659;
    printf("%d",sol);
    return 0;
}