Pagini recente » Cod sursa (job #886752) | Cod sursa (job #2670351) | Cod sursa (job #2602649) | Cod sursa (job #2833250) | Cod sursa (job #2692418)
#include <bits/stdc++.h>
#define MOD 1000
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;
maxim = minim = maxim2 = minim2 = 44100;
dp[44100] = 1;
for (int i = 1; i <= n; ++i)
for (int j = 1; j <= m; ++j)
{
for (int k = minim2; k <= maxim2; k++)
if (dp[k])
{
aux[k + i * j] += dp[k];
maxim = max(maxim, k + i * j);
}
for (int k = maxim2; k >= minim2; k--)
if (dp[k])
{
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 > 44100 || x < -44100)
fout << 0 << '\n';
else
fout << dp[44100 + x];
return 0;
}