Cod sursa(job #1769629)

Utilizator paulstepanovStepanov Paul paulstepanov Data 2 octombrie 2016 21:16:33
Problema Lista lui Andrei Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 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()
{
    char l1,l2;
    fin>>n>>m;
    for(i=1;i<=m;i++)
    {
      fin>>l1>>l2;
      A[l1-96][l2-96]=1;
      A[l2-96][l1-96]=1;
    }
}

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

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

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