Pagini recente » Cod sursa (job #812975) | Cod sursa (job #2383331) | Cod sursa (job #807761) | Cod sursa (job #638354) | Cod sursa (job #1146149)
#include <cmath>
#include <fstream>
#include <cstring>
#include <iostream>
using namespace std;
ifstream fin("diamant.in");
ofstream fout("diamant.out");
#define MOD 10001
#define SMAX 44101
int i, j, k, x, N, M, X;
int dp[2][2 * SMAX];
int lin, col;
int cnt, lim;
int main() {
fin >> N >> M >> X;
lim = N * M;
lin = 1;
dp[0][0] = 1;
for (i = 1; i <= lim; ++i) {
++col;
if (col > M) {
col = 1;
++lin;
}
cnt ^= 1;
memset(dp[cnt], 0, sizeof(dp[cnt]));
for (j = 0; j < SMAX; ++j) {
dp[cnt][j] += (dp[cnt ^ 1][j] % MOD);
dp[cnt][j] %= MOD;
dp[cnt][j] += (dp[cnt ^ 1][abs(j - lin * col)] % MOD);
dp[cnt][j] %= MOD;
dp[cnt][j] += (dp[cnt ^ 1][j + lin * col] % MOD);
dp[cnt][j] %= MOD;
}
}
if (abs(X) >= SMAX) fout << "0\n";
else
fout << dp[cnt][X] << '\n';
return 0;
}