Pagini recente » Cod sursa (job #1823261) | Cod sursa (job #749133) | Istoria paginii runda/123_123/clasament | Cod sursa (job #227390) | Cod sursa (job #1394244)
#include <cstdio>
#include <cstring>
#define PLUS 45000
#define MOD 10000
using namespace std;
int n , m , x , i , j , k , sol , crt , total;
int A[2*PLUS] , aux[2*PLUS];
int main()
{
freopen("diamant.in","r",stdin);
freopen("diamant.out","w",stdout);
scanf("%d %d %d", &n, &m, &x);
for (i = 1; i <= n; ++i)
for (j = 1; j <= m; ++j)
sol += i * j;
if (x < (-1) * sol || sol < x)
{
printf("0\n");
return 0;
}
A[PLUS] = aux[PLUS] = 1;
for (i = 1; i <= n; ++i)
for (j = 1; j <= m; ++j)
{
crt = i * j; total += crt;
for (k = -total + PLUS; k <= total + PLUS; ++k)
{
if (k + crt < 2*PLUS) aux[k] += A[k + crt];
if (k - crt >= 0) aux[k] += A[k - crt];
aux[k] %= MOD;
}
memcpy(A , aux , sizeof(aux));
}
printf("%d\n", A[x + PLUS]);
return 0;
}