Pagini recente » Cod sursa (job #1531688) | Cod sursa (job #625071) | Cod sursa (job #2196755) | Cod sursa (job #2221118) | Cod sursa (job #38613)
Cod sursa(job #38613)
#include <cstdio>
#define FIN "diamant.in"
#define FOUT "diamant.out"
#define NMAX 50000
int s1[NMAX], s2[NMAX];
int N, M, X;
void read ()
{
scanf ("%d%d%d", &N, &M, &X);
}
void solve ()
{
int i, j;
s1[1] = s1[0] = 1;
if (X < 0)
X = -X;
if (X > ((N*M+1)*(N*M+1)*N*N*M*M)/4)
{
printf ("0\n");
return;
}
for (int p = 1; p < N*M; ++ p)
{
for (int x = 0; x <= X; ++ x)
{
i = p / M + 1;
j = p - p / M * N + 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];
if (s2[x] > 10000)
s2[x] -= 10000;
}
for (int x = 0; x <= X; ++ x)
s1[x] = s2[x];
}
printf ("%d\n", s1[X]%10000);
}
int
main ()
{
freopen (FIN, "rt", stdin);
freopen (FOUT, "wt", stdout);
read ();
solve ();
return 0;
}