Pagini recente » Cod sursa (job #253141) | Cod sursa (job #2129274) | Cod sursa (job #2516616) | Cod sursa (job #1657457) | Cod sursa (job #1764703)
#include <cstdio>
#include <bitset>
#include <vector>
using namespace std;
const int nmx = 45000;
const int mod = 10000;
int mij = nmx + 500;
int n,m,x;
int dp1[90069],dp2[90069];
void citire()
{
scanf("%d %d %d", &n, &m, &x);
}
void dinamica()
{
dp1[nmx] = 1;
int st = nmx, dr = nmx;
for(int i = 1; i <= n; ++i)
for(int j = 1; j <= m; ++j)
{
st -= i * j;
dr += i * j;
for(int p = st; p <= dr; ++p)
if(dp1[p])
{
dp2[p-i*j] = (dp2[p-i*j] +dp1[p]) % mod;
dp2[p+i*j] = (dp2[p+i*j] +dp1[p]) % mod;
}
for(int t = 1; t <= 90000; ++t)
dp1[t] = dp2[t];
}
}
int main()
{
freopen("diamant.in", "r", stdin);
freopen("diamant.out", "w", stdout);
citire();
if(x > nmx || x < - nmx)
{
printf("0\n");
return 0;
}
dinamica();
printf("%d\n", dp1[x+nmx]);
return 0;
}