Pagini recente » Cod sursa (job #2071347) | Cod sursa (job #2799951) | Cod sursa (job #5329) | Cod sursa (job #1888647) | Cod sursa (job #2692443)
#include <bits/stdc++.h>
#define MOD 10000
using namespace std;
ifstream fin("diamant.in");
ofstream fout("diamant.out");
int dp[100100], aux[100100];
int n, m, minim,maxim,minim2,maxim2, x;
int main()
{
fin >> n >> m >> x;
int s = 0;
for(int i = 1; i <= n; i ++)
{
for(int j = 1; j <= m; j ++)
{
s += i * j;
}
}
maxim = minim = maxim2 = minim2 = s;
dp[s] = 1;
for (int i = 1; i <= n; ++i)
for (int j = 1; j <= m; ++j)
{
for (int k = maxim2; k >= minim2; k--)
if (dp[k])
{
aux[k + i * j] += dp[k];
maxim = max(maxim, k + i * j);
aux[k - i * j] += dp[k];
minim = min(minim, k - i * j);
}
for (int k = minim; k <= maxim; ++k)
{
dp[k] += aux[k];
aux[k] = 0;
dp[k] %= MOD;
}
minim2 = minim, maxim2 = maxim;
}
if(x > s || x < -s)
fout << 0 << '\n';
else
fout << dp[s + x];
return 0;
}