Cod sursa(job #864441)

Utilizator okros_alexandruOkros Alexandru okros_alexandru Data 24 ianuarie 2013 22:58:43
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <fstream>
#define nmax 1010
#define cmax 26
#define a 97
#define mod 104659
using namespace std;

int N,Sol,DP[nmax][cmax];
bool viz[cmax][cmax];

void solve() {

    int i,j,k;

    for(j=0;j<cmax;j++)
        DP[1][j]=1;

    for(i=2;i<=N;i++)
        for(j=0;j<cmax;j++)
            for(k=0;k<cmax;k++)
                if(!viz[j][k])
                    DP[i][j]=(DP[i][j]+DP[i-1][k])%mod;

    for(j=0;j<cmax;j++)
        Sol=(Sol+DP[N][j])%mod;

}
void read() {

    int M;
    char A,B;
    ifstream in("nrcuv.in");
    in>>N>>M;

    while(M--) {
        in>>A>>B;
        viz[A-a][B-a]=1;
        viz[B-a][A-a]=1;
        }

    in.close();

}
void write() {

    ofstream out("nrcuv.out");
    out<<Sol<<'\n';
    out.close();

}
int main() {

    read();
    solve();
    write();

    return 0;

}