Pagini recente » Cod sursa (job #113693) | Cod sursa (job #2240199) | Cod sursa (job #3238993) | Cod sursa (job #2585374) | Cod sursa (job #2763552)
#include <fstream>
#include <unordered_map>
#include <iostream>
#include <algorithm>
using namespace std;
int n, m, x;
short dp[2][88201];
int rez;
void read() {
ifstream f("diamant.in");
f >> n >> m >> x;
f.close();
}
void solve() {
int i, j, sum = 0, k;
for (i = 1; i <= n; i++)
for (j = 1; j <= m; j++)
sum += i * j;
x = abs(x);
if (x > sum)
return;
dp[1][sum] = 1;
for (i = 1; i <= n; i++)
for (j = 1; j <= m; j++) {
for (k = 0; k <= 2 * sum; k++)
dp[0][k] = dp[1][k];
for (k = 0; k <= 2 * sum; k++) {
if (k >= i * j)
dp[1][k] += dp[0][k - i * j];
if (k <= 2 * sum - i * j)
dp[1][k] += dp[0][k + i * j];
dp[1][k] %= 10000;
}
}
rez = dp[1][x + sum];
}
void output() {
ofstream g("diamant.out");
g << rez;
g.close();
}
int main() {
read();
solve();
output();
return 0;
}