Cod sursa(job #970175)

Utilizator andreiblaj17Andrei Blaj andreiblaj17 Data 6 iulie 2013 09:14:05
Problema Lista lui Andrei Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <iostream>
#include <fstream>
#define nmax 1001

using namespace std;

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

int n,m,dp[nmax][28],s,i;
bool a[100][100];
char x,y,h,j;

int main()
{
    in >> n >> m;

    for (i=1; i<=m; i++){
        in >> x >> y;
        a[x][y]=1;
        a[y][x]=1;
    }

    for (j='a'; j<='z'; j++)
        dp[1][i]=1;

    for (i=2; i<=n; i++)
        for (j='a'; j<='z'; j++)
            for (h='a'; h<='z'; h++){
                if (a[j][h]==0 && a[h][j]==0) dp[i][j]+=dp[i-1][h];
                dp[i][j]%=104659;
            }

    for (j='a'; j<='z'; j++){
        s+=dp[n][i];
        s%=104659;
    }

    out << s;

    return 0;
}