Pagini recente » Cod sursa (job #1683671) | Cod sursa (job #2136629) | Cod sursa (job #1907650) | Cod sursa (job #1854286) | Cod sursa (job #2138461)
#include <bits/stdc++.h>
using namespace std;
int n, m, x;
int dp[2][2 * 44105];
int maxim;
vector<int> p;
const int MOD = 10000;
void knapsack() {
for (int i = 1; i <= p.size(); i++) {
for (int j = -maxim; j <= maxim; j++) {
int s = 1LL * dp[!(i & 1)][maxim + j];
s = (s + 1LL * dp[!(i & 1)][maxim + j - p[i - 1]]) % MOD;
s = (s + 1LL * dp[!(i & 1)][maxim + j + p[i - 1]]) % MOD;
dp[i & 1][maxim + j] = s;
}
}
}
int main() {
freopen("diamant.in", "r", stdin);
freopen("diamant.out", "w", stdout);
scanf("%d %d %d ", &n, &m, &x);
maxim = (n * (n + 1) / 2) * (m * (m + 1) / 2);
dp[0][maxim] = 1;
if (x > maxim || x < -maxim) {
printf("0\n");
return 0;
}
for (int i = 1; i <= n; i++)
for (int j = 1; j <= m; j++)
p.push_back(i * j);
knapsack();
printf("%d\n", dp[((n * m) & 1)][maxim + x]);
return 0;
}