Cod sursa(job #1428738)

Utilizator StarGold2Emanuel Nrx StarGold2 Data 4 mai 2015 23:46:44
Problema Diamant Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <fstream>
#define DIM 50000
using namespace std;

ifstream fin ("diamant.in" );
ofstream fout("diamant.out");

int V[DIM*2], N, M, X, W[DIM*2];
#define V (V + DIM)
#define W (W + DIM)

inline void insert(int st, int dr, int x, int val){
     int i = st;
     while(i != dr){
          if(V[i] != 0 && W[i] == 0){
               V[i+val] += V[i];
               W[i+val] = 1;
          }
          else
               W[i] = 0;
          i += x;
     }
     return;
}

void CodeExpert(){
     fin >> N >> M >> X;
     if(X < -44200 || X > +44200){
          fout << 0;
          return;
     }
     V[0] = 1;
     for(int i = 1; i <= N; i ++)
          for(int j = 1; j <= M; j ++){
               insert(+DIM-1, -DIM+1, -1, +i*j);
               insert(-DIM+1, +DIM-1, +1, -i*j);
          }
     fout << V[X] % 10000;
     return;
}

int main(){
     CodeExpert();
     return 0;
}