Pagini recente » Cod sursa (job #332390) | Cod sursa (job #240784) | Cod sursa (job #1897092) | Cod sursa (job #1798076) | Cod sursa (job #2691736)
#include <fstream>
using namespace std;
const int MOD = 1e4;
const int BASE = 210 * 210;
const int N = 2 * BASE + 1;
long long dp[N];
int main() {
ifstream in("diamant.in");
ofstream out("diamant.out");
int nl, nc, x, minq, maxq, mini, maxi;
in >> nl >> nc >> x;
minq = maxq = mini = maxi = BASE;
dp[BASE] = 1;
for (int i = 1; i <= nl; ++i)
for (int j = 1; j <= nc; ++j) {
for (int k = maxq; k >= minq; --k)
if (dp[k]) {
dp[k + i * j] += dp[k];
maxi = max(maxi, k + i * j);
}
for (int k = minq; k <= maxq; ++k)
if (dp[k]) {
dp[k - i * j] += dp[k];
mini = min(mini, k - i * j);
}
minq = mini, maxq = maxi;
}
if (x >= -BASE && x <= BASE)
out << dp[BASE + x] % MOD;
else
out << 0;
in.close();
out.close();
return 0;
}