Pagini recente » Cod sursa (job #1609270) | Cod sursa (job #1135481) | Cod sursa (job #1470520) | Cod sursa (job #297416) | Cod sursa (job #53446)
Cod sursa(job #53446)
#include <cstdio>
#include <cstring>
const int mod = 10000;
int n, m, s;
int v[90001], u[90001];
#define v (v+45000)
#define u (u+45000)
void readdata()
{
freopen("diamant.in", "r", stdin);
freopen("diamant.out", "w", stdout);
scanf("%d %d %d", &n, &m, &s);
}
int solve()
{
int i, j, k, lim = 0, val;
for (i = 1; i <= n; ++i)
for (j = 1; j <= m; ++j)
lim += i*j;
if (lim < s) return 0;
if (s < -lim) return 0;
v[0] = 1;
for (i = 1; i <= n; ++i)
for (j = 1; j <= m; ++j)
{
for (k = -lim; k <= lim; ++k)
u[k] = 0;
val = i*j;
for (k = lim-val; k >= -lim; --k)
{
u[k+val] += v[k];
if (u[k+val] >= mod) u[k+val] -= mod;
}
for (k = -lim+val; k <= lim; ++k)
{
u[k-val] += v[k];
if (u[k-val] >= mod) u[k-val] -= mod;
}
for (k = -lim; k <= lim; ++k)
{
v[k] += u[k];
if (v[k] >= mod) v[k] -= mod;
}
}
return v[s];
}
int main()
{
readdata();
printf("%d\n", solve());
return 0;
}