Cod sursa(job #1769623)

Utilizator paulstepanovStepanov Paul paulstepanov Data 2 octombrie 2016 21:07:57
Problema Lista lui Andrei Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("nrcuv.in");
ofstream fout("nrcuv.out");

int n,m,i,j,k,A[30][30],DP[1005][30],S;

void Read()
{
    fin>>n>>m;
    for(i=1;i<=m;i++)
    {char l1,l2;
    fin>>l1>>l2;
    A[l1-'a'][l2-'a']=1;
    A[l2-'a'][l1-'a']=1;
    }
}

void Solve()
{
    for(i='a';i<='z';i++)
     DP[1][i]=1;
    for(i=2;i<=n;i++)
        for(j=1;j<=26;j++)
            for(k=1;k<=26;k++)
            if(A[j][k]==0)
            {
                DP[i][j]=(DP[i][j]+DP[i-1][k])%104659;
            }
}

void Print()
{
    for(i=1;i<=26;i++)
    S=(S+DP[n][i])%104659;
    fout<<S;
}

int main()
{
    Read();
    Solve();
    Print();
    return 0;
}