Pagini recente » Cod sursa (job #2506664) | Cod sursa (job #2467174) | Cod sursa (job #250947) | Cod sursa (job #1259313) | Cod sursa (job #2125914)
#include <fstream>
#include <cstring>
#define MOD 10000
#define DIM 100000
using namespace std;
int V[DIM];
int W[DIM];
int *P = V + (DIM/2);
int *Q = W + (DIM/2);
int N, M, i, j, k, t, v, minim, maxim, X;
int main() {
ifstream fin("diamant.in");
ofstream fout("diamant.out");
fin>>N>>M>>X;
P[0] = 1;
for (i=1;i<=N;i++)
for (j=1;j<=M;j++){
for (t=minim;t<=maxim;t++)
if (P[t]) {
v = i*j;
Q[t]+=P[t];
Q[t+v]+=P[t];
Q[t-v]+=P[t];
///Q[t] %= MOD;
if (Q[t] >= MOD)
Q[t] -= MOD;
///Q[t+v] %= MOD;
if (Q[t+v] >= MOD)
Q[t+v] -= MOD;
///Q[t-v] %= MOD;
if (Q[t-v] >= MOD)
Q[t-v] -= MOD;
}
minim -= i*j;
maxim += i*j;
/*
for (t=minim;t<=maxim;t++) {
P[t] = Q[t];
Q[t] = 0;
}
*/
memcpy(V, W, sizeof(W));
memset(W, 0, sizeof(W));
}
if (X > DIM/2 || X < -DIM/2)
fout<<0;
else
fout<<P[X];
return 0;
}