Pagini recente » Cod sursa (job #1099298) | Cod sursa (job #535992) | Cod sursa (job #1399796) | Cod sursa (job #523315) | Cod sursa (job #1499338)
#include <bits/stdc++.h>
#define pb push_back
#define f first
#define s second
#define pii pair<int, int>
#define mp make_pair
using namespace std;
const int mod = 1e4;
int MAX, n, m, k, curr, ant, dp[2][100005];
int main() {
freopen("diamant.in", "r", stdin);
freopen("diamant.out", "w", stdout);
scanf("%d%d%d", &n, &m, &k);
MAX = n * (n + 1) * m * (m + 1) / 4;
if (MAX < k || -MAX > k) {
printf("0");
return 0;
}
dp[0][MAX] = 1;
for (int i = 1; i <= n; i++)
for (int j = 1; j <= m; j++) {
curr = 1 - curr;
for (int sum = 0; sum <= 2 * MAX; sum++) {
dp[curr][sum] = dp[1 - curr][sum];
if (sum >= i * j && dp[1 - curr][sum - i * j]) {
dp[curr][sum] += dp[1 - curr][sum - i * j];
dp[curr][sum] -= (dp[curr][sum] >= mod ? mod : 0);
}
if (sum + i * j <= 2 * MAX && dp[1 - curr][sum + i * j]) {
dp[curr][sum] += dp[1 - curr][sum + i * j];
dp[curr][sum] -= (dp[curr][sum] >= mod ? mod : 0);
}
}
}
printf("%d", dp[curr][k + MAX]);
return 0;
}