Pagini recente » Cod sursa (job #1556817) | Cod sursa (job #2808758) | Cod sursa (job #2922650) | Cod sursa (job #3190540) | Cod sursa (job #2203746)
#include <stdio.h>
#include <algorithm>
const int MAX_X = 44100;
const int MOD = 10000;
int dp[2][MAX_X + 1000];
int main() {
freopen("diamant.in", "r", stdin);
freopen("diamant.out", "w", stdout);
int n, m, X;
scanf("%d%d%d", &n, &m, &X);
X = std::abs(X);
if (X >= MAX_X)
printf("0\n");
else {
dp[0][0] = 1;
for (int i = 1; i <= n * m; i++)
for (int j = 0; j <= MAX_X; j++) {
int val;
if (i % n == 0)
val = (i / n) * n;
else
val = (i / n + 1) * (i % n);
int y = std::abs(j - val);
if (j + val >= MAX_X || y >= MAX_X)
break;
dp[i % 2][j] = (dp[(i - 1) % 2][j] + dp[(i - 1) % 2][j + val] + dp[(i - 1) % 2][y]) % MOD;
}
printf("%d\n", dp[(n * m) % 2][X]);
}
fclose(stdin);
fclose(stdout);
return 0;
}