Pagini recente » Cod sursa (job #1171581) | Cod sursa (job #406206) | Cod sursa (job #999018) | Cod sursa (job #1521360) | Cod sursa (job #2480534)
/// M-a vazut femeia ta in oras instant m-a iubit
/// M-a vazut te-a parasit
/// Alta zdreanta n-ai gasit
/// Am scos-o pa zdreanta-n oras am iesit in papuci Gucci
/// Dupa date i-am dat papucii
#include <iostream>
#include <cstdio>
using namespace std;
const int MOD = 10000;
const int L = 40000 + 7;
int add(int a, int b)
{
a += b;
if (a >= MOD)
return a - MOD;
if (a < 0)
return a + MOD;
return a;
}
int mul(int a, int b)
{
return a * b % MOD;
}
int n, m, x, dp[2 * L], dp2[2 * L];
#define dp (dp + L)
#define dp2 (dp2 + L)
int main()
{
freopen ("diamant.in", "r", stdin);
freopen ("diamant.out", "w", stdout);
cin >> n >> m >> x;
if (abs(x) >= L)
{
cout << "0\n";
return 0;
}
int sum = 0;
dp[0] = 1;
for (int i = 1; i <= n; i++)
for (int j = 1; j <= m; j++)
{
int y = i * j;
for (int x = -sum; x <= sum; x++)
if (dp[x])
{
dp2[x] = add(dp2[x], dp[x]);
dp2[x + y] = add(dp2[x + y], dp[x]);
dp2[x - y] = add(dp2[x - y], dp[x]);
}
sum += y;
for (int x = -sum; x <= sum; x++)
{
dp[x] = dp2[x];
dp2[x] = 0;
}
}
cout << dp[x] << "\n";
return 0;
}