Pagini recente » Cod sursa (job #2600372) | Cod sursa (job #3286741) | Cod sursa (job #877944) | Cod sursa (job #1072666) | Cod sursa (job #2851540)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("diamant.in");
ofstream fout("diamant.out");
const int MOD = 10000, V = 9000;
int n, m, X, len;
int dp[2][95000], a[405];
void solve()
{
int v;
v = n * (n + 1) / 2 * m * (m + 1) / 2;
if (abs(X) > v)
fout << 0 << "\n";
for(int i = 1; i <= n; i++)
{
for(int j = 1; j <= m; j++)
{
a[++len] = i * j;
}
}
dp[0][V/2] = 1;
bool 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;
}
}
X += 4500;
fout << dp[L][X];
}
int main()
{
fin >> n >> m >> X;
solve();
return 0;
}