Pagini recente » Cod sursa (job #2783086) | Cod sursa (job #2204395) | Cod sursa (job #34417) | Cod sursa (job #888179) | Cod sursa (job #36193)
Cod sursa(job #36193)
#include <stdio.h>
#include <string.h>
#define JEG 50000
#define MOD 10000
#define RED(x) x -= (x >= MOD) ? MOD : 0;
int N, M, S;
int ant[JEG << 1];
int cur[JEG << 1];
int main()
{
int i, j, sum, q;
freopen("diamant.in", "r", stdin);
freopen("diamant.out", "w", stdout);
scanf("%d %d %d", &N, &M, &S);
ant[0 + JEG] = 1;
for (i = 1; i <= N; i++)
for (j = 1; j <= M; j++) {
sum = i * j;
for (q = 0; q < (JEG << 1); q++) {
if (q - sum >= 0) cur[q] += ant[q - sum], RED(cur[q]);
if (q + sum < (JEG << 1)) cur[q] += ant[q + sum], RED(cur[q]);
cur[q] += ant[q], RED(cur[q]);
}
memcpy(ant, cur, sizeof(cur));
memset(cur, 0, sizeof(cur));
}
if (-JEG >= S || S >= JEG) printf("0\n");
else printf("%d\n", ant[S + JEG]);
fclose(stdin);
fclose(stdout);
return 0;
}