Pagini recente » Cod sursa (job #868093) | Cod sursa (job #2647484) | Cod sursa (job #2386061) | Cod sursa (job #1172332) | Cod sursa (job #2203879)
#include <stdio.h>
#include <algorithm>
#define nr1(x) (x % n) * ((x - 1) / n + 1)
#define nr2(x) n * (i / n)
const int MAX_X = 44100;
const int MOD = 10000;
int Count[2][100 + MAX_X];
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);
printf("%d", x);
if (x >= MAX_X)
printf("0");
else {
Count[0][0] = 1;
for (int i = 1; i <= n * m; i++) {
int plus = nr1(i);
if (i % n == 0)
plus = nr2(i);
for (int j = 0; j + plus <= MAX_X; j++) {
int p = std::abs(j - plus);
if (p >= MAX_X || j + plus >= MAX_X)
break;
Count[i % 2][j] = (Count[(i - 1) % 2][j] + Count[(i - 1) % 2][j + plus] + Count[(i - 1) % 2][p]) % MOD;
}
}
printf("%d", Count[(n * m) % 2][x]);
}
return 0;
}