Cod sursa(job #865524)

Utilizator stoicatheoFlirk Navok stoicatheo Data 26 ianuarie 2013 16:53:02
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 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;
 
}