Pagini recente » Cod sursa (job #592483) | Cod sursa (job #1185580) | Cod sursa (job #2902668) | Cod sursa (job #2840404) | Cod sursa (job #38712)
Cod sursa(job #38712)
#include <cstdio>
#define FIN "diamant.in"
#define FOUT "diamant.out"
#define NMAX 1<<16
int s1[NMAX], s2[NMAX];
int N, M, X;
void read ()
{
scanf ("%d%d%d", &N, &M, &X);
}
void solve ()
{
int i, j, lim;
s1[1] = s1[0] = 1;
if (X < 0)
X = -X;
lim = ((N*M+1)*(N*M+1)*N*N*M*M)/4;
if (X > lim)
{
printf ("0\n");
return;
}
for (int p = 1; p < N*M; ++ p)
{
for (int x = 0; x <= lim; ++ x)
{
i = p / M + 1;
j = p % M + 1;
if (x - i*j > 0)
s2[x] = s1[x - i*j] + s1[x + i*j] + s1[x];
else
s2[x] = s1[i*j - x] + s1[x + i*j] + s1[x];
s2[x] %= 10000;
}
for (int x = 0; x <= lim; ++ x)
s1[x] = s2[x];
}
printf ("%d\n", s1[X]);
}
int
main ()
{
freopen (FIN, "rt", stdin);
freopen (FOUT, "wt", stdout);
read ();
solve ();
return 0;
}