Pagini recente » Cod sursa (job #587636) | Cod sursa (job #1830535) | Cod sursa (job #2555709) | Cod sursa (job #2185954) | Cod sursa (job #2851559)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("diamant.in");
ofstream fout("diamant.out");
const int MOD = 10000, V = 90000;
int n, m, x, len;
int dp[2][95000], a[405];
void solve()
{
if (abs(x) > n * (n + 1) / 2 * m * (m + 1) / 2)
fout << 0 << "\n";
else
{
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= m; j++)
{
a[++len] = i * j;
}
}
x += 45000;
dp[0][V / 2] = 1;
int L = 0;
for (int i = 1; i <= len; i++)
{
L = 1 - L;
for (int j = 0; j <= V; j++)
{
dp[L][j] = dp[1 - L][j];
if (j >= a[i])
{
dp[L][j] += dp[1 - L][j - a[i]];
}
dp[L][j] += dp[1 - L][j + a[i]];
dp[L][j] = dp[L][j] % MOD;
}
}
fout << dp[L][x];
}
}
int main()
{
fin >> n >> m >> x;
solve();
return 0;
}