Pagini recente » Cod sursa (job #1523567) | Cod sursa (job #341453) | Cod sursa (job #2713718) | Cod sursa (job #3250376) | Cod sursa (job #2203742)
#include <stdio.h>
#include <algorithm>
const int MAX_X = 50000;
const int MOD = 10000;
int dp[2][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);
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);
if (j + val >= MAX_X || std::abs(j - val) >= MAX_X)
break;
dp[i % 2][j] = (dp[(i - 1) % 2][j] + dp[(i - 1) % 2][j + val] + dp[(i - 1) % 2][std::abs(j - val)]) % MOD;
}
printf("%d\n", dp[(n * m) % 2][X]);
fclose(stdin);
fclose(stdout);
return 0;
}