Cod sursa(job #1720771)

Utilizator denniscrevusDennis Curti denniscrevus Data 23 iunie 2016 15:15:58
Problema Lista lui Andrei Scor 15
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <fstream>
#define MOD 104659
#define DIM 27
#define NMAX 1005

using namespace std;

int n,m,i,rez=-26;
bool check[DIM][DIM];
char j,h,x,y;
long long d[NMAX][DIM];

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

    f>>n>>m;

    for(i=1;i<=m;i++)
    {
        f>>x>>y;
        check[x-96][y-96]=1;
        check[y-96][x-96]=1;
    }

    // le luam pe toate
    for(i=1;i<=n;i++)
        for(char j='a';j<='z';j++)
            {
                d[i][j-96]=1;
            }

    for(i=1;i<n;i++)
        for(j='a';j<='z';j++)
            for(h='a'; h<='z'; h++)
                {
                    if(check[j-96][h-96]==0 && check[h-96][j-96]==0)
                    {
                        d[i+1][h-96] = d[i+1][h-96] + d[i][j-96];
                        d[i+1][h-96] = d[i+1][h-96]%MOD;
                    }
                }

    i=n;
    for(int k=1;k<=26;k++)
        rez=(rez+d[i][k])%MOD;

    g<<rez;



}