Cod sursa(job #1341237)

Utilizator frantiu.andreiFrantiu Andrei Mihai frantiu.andrei Data 12 februarie 2015 16:11:53
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <fstream>
#define NMax 1005

using namespace std;

ifstream f("nrcuv.in");
ofstream g("nrcuv.out");

int N,M,a[30][30],DP[30][NMax];

void Read()
{
    f>>N>>M;
    int i;
    for(i=1;i<=M;i++)
    {
        char c1,c2;
        f>>c1>>c2;
        a[c1-96][c2-96]=a[c2-96][c1-96]=1;
    }
}

void Solve()
{
    int i,j,c=0,k;
    for(i=1;i<=26;i++)
        DP[i][1]=1;
    for(k=1;k<=N;k++)
    {
        for(i=1;i<=26;i++)
        {
            for(j=1;j<=26;j++)
            {
                if(a[i][j]==0)
                    DP[i][k]+=DP[j][k-1];
                DP[i][k]%=104659;
            }
        }
    }
    for(i=1;i<=26;i++)
    {
        c+=DP[i][N];
        c%=104659;
    }
    g<<c<<"\n";
}

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