Cod sursa(job #420556)

Utilizator vladiiIonescu Vlad vladii Data 19 martie 2010 22:31:00
Problema Diamant Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <iostream>
#include <fstream>
using namespace std;
#define MOD 10000

int N, M, X;
int A[2*45001], B[2*45001];

int main() {
    fstream f1, f2;
    int i, j, p, q, Smax=44100;
    f1.open("diamant.in", ios::in);
    f2.open("diamant.out", ios::out);
    f1>>N>>M>>X;
    if(X>Smax || X<-Smax) {
         f2<<0<<endl;
    }
    else {
         B[Smax]=1;
         for(i=1; i<=N; i++) {
              for(j=1; j<=M; j++) {
                   for(p=-Smax; p<=Smax; p++) {
                        A[Smax+p]=(B[Smax+i*j+p]+B[Smax+p]+B[Smax-i*j+p])%MOD;
                   }
                   memcpy(B, A, sizeof(A));
              }
         }
         f2<<B[Smax+X]<<endl;
    }
    f1.close(); f2.close();
    return 0;
}