Cod sursa(job #970174)

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

using namespace std;

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

int n,m,dp[nmax][27],s;
bool a[27][27];
char x,y;

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

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

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

    for (int i=2; i<=n; i++)
        for (char j='a'; j<='z'; j++)
            for (char 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 (char i='a'; i<='z'; i++){
        s+=dp[n][i];
        s%=104659;
    }

    out << s;

    return 0;
}