Pagini recente » Cod sursa (job #428386) | Cod sursa (job #344703) | Cod sursa (job #2480042) | Cod sursa (job #3177020) | Cod sursa (job #1735791)
#include <bits/stdc++.h>
using namespace std;
ifstream f("diamant.in");
ofstream g("diamant.out");
const int NMAX = 88203;
const int LIM = 44100;
const int MOD = 10000;
int dp[3][NMAX], cost[403];
int main()
{
int n , m, x, MaxL, dim;
f>> n >> m >> x;
MaxL = 0;
dim = 0;
for(int i = 1; i <= n; i++) {
for(int j = 1; j <= m; j++) {
MaxL += i * j;
cost[++dim] = i * j;
}
}
if(x > MaxL || x < -MaxL) {
g<<"0\n";
return 0;
}
dp[0][LIM] = 1;
int lin = 1;
for(int i = 1; i <= dim; i++,lin = 1 - lin) {
for(int j = -MaxL; j <= MaxL; j++) {
dp[lin][j + LIM] = dp[1 - lin][j + LIM];
if(j + LIM + cost[i] <= NMAX)
dp[lin][j + LIM] += dp[1 - lin][j + LIM + cost[i]];
if(j + LIM - cost[i] >= 0) {
dp[lin][j + LIM] += dp[1 - lin][j + LIM - cost[i]];
}
dp[lin][j + LIM] %= MOD;
}
}
g<< dp[1 - lin][x + LIM];
return 0;
}