Pagini recente » Cod sursa (job #2408433) | Cod sursa (job #2531084) | Cod sursa (job #564337) | Cod sursa (job #49223) | Cod sursa (job #1764711)
#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;
dp2[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 = 1; p <= 90000; ++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 > 44000 || x < - 44000)
{
printf("0\n");
return 0;
}
dinamica();
printf("%d\n", dp1[x+nmx]);
return 0;
}