Pagini recente » Cod sursa (job #8282) | Cod sursa (job #1194122) | Cod sursa (job #1972488) | Cod sursa (job #166755) | Cod sursa (job #34320)
Cod sursa(job #34320)
#include <stdio.h>
#include <string.h>
#define MAX_S 90005
#define MOD 10000
#define FIN "diamant.in"
#define FOUT "diamant.out"
#define FOR(i, a, b) for (i = (a); i < (b); i++)
#define SHIFT 45000
int N, M, X, A[MAX_S], B[MAX_S];
int main(void)
{
int i, j, k, t, sum = 0;
freopen(FIN, "r", stdin);
freopen(FOUT, "w", stdout);
scanf("%d %d %d", &N, &M, &X);
FOR (i, 1, N+1) FOR (j, 1, M+1) sum += i*j;
if (X < -sum || X > sum) { printf("0\n"); return 0; }
A[SHIFT] = B[SHIFT] = 1; sum = 0;
FOR (i, 1, N+1) FOR (j, 1, M+1)
{
t = i*j; sum += t;
for (k = sum+SHIFT; k >= -sum+SHIFT; k--)
{
if (k-t >= 0) B[k] += A[k-t];
if (k+t < MAX_S) B[k] += A[k+t];
while (B[k] >= MOD) B[k] -= MOD;
}
memcpy(A, B, sizeof(B));
}
printf("%d\n", A[X+SHIFT]);
return 0;
}