Pagini recente » Cod sursa (job #2030192) | Cod sursa (job #115189) | Cod sursa (job #1410949) | Cod sursa (job #2337355) | Cod sursa (job #2763556)
#include <fstream>
using namespace std;
int n, m, x;
int dp[2][88201];
int sum;
void read() {
ifstream f("diamant.in");
f >> n >> m >> x;
f.close();
}
void solve() {
int i, j, k;
for (i = 1; i <= n; i++)
for (j = 1; j <= m; j++)
sum += i * j;
x = (x > 0 ? x : -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;
}
}
}
void output() {
ofstream g("diamant.out");
g << (x > sum ? 0 : dp[1][sum + x]);
g.close();
}
int main() {
read();
solve();
output();
return 0;
}