Pagini recente » Cod sursa (job #821512) | Cod sursa (job #703438) | Cod sursa (job #308705) | Cod sursa (job #2257097) | Cod sursa (job #2413552)
#include <bits/stdc++.h>
using namespace std;
ifstream in("diamant.in");
ofstream out("diamant.out");
const int mod = 10000;
main()
{
int n, m, x;
in >> n >> m >> x;
int sum = 0;
for(int i = 1; i <= n; i++)
for(int j = 1; j <= m; j++)
{
sum += i * j;
}
vector <int> dp[2];
dp[0].resize(sum * 2 + 7);
dp[1].resize(sum * 2 + 7);
if(x < -sum || x > sum)
{
out << "0\n";
return 0;
}
dp[0][sum] = 1;
for(int i = 1; i <= n; i++)
for(int j = 1; j <= m; j++)
{
for(int p = 0; p <= 2 * sum; p++)
{
dp[1][p] = dp[0][p];
if(p + i * j <= 2 * sum)
dp[1][p] += dp[0][p + i * j];
if(p - i * j >= 0)
dp[1][p] += dp[0][p - i * j];
dp[1][p] %= mod;
}
dp[0].swap(dp[1]);
}
out << dp[0][sum + x];
}