Pagini recente » Cod sursa (job #2294385) | Cod sursa (job #752927) | Cod sursa (job #1292573) | Cod sursa (job #2890558) | Cod sursa (job #283211)
Cod sursa(job #283211)
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MOD 10000
int n;
int i;
int vs;
int v[100003];
int v2[100003];
int no[100003];
int no2[100003];
int j;
int max;
int pr;
int s;
int k;
int mij;
int m;
long long x;
int main()
{
freopen("diamant.in","r",stdin);
freopen("diamant.out","w",stdout);
scanf("%d %d %lld",&n, &m, &x);
mij = 50000;
for(i = 1; i <= n; i++)
for(j = 1; j <= m; j++)
max += i * j;
if (abs(x) > max)
{
printf("0\n");
return 0;
}
no[mij] = 1;
v[mij] = 1;
for(i = 1; i <= n; i++)
for(j = 1; j <= m; j++)
{
int val = i * j;
memcpy(v2,v,sizeof(v));
for(k = -s + mij; k <= s + mij; k++)
{
if (no[k])
no2[k] = 1;
if (no[k])
{
v2[k + val] = (v[k + val] + v[k]) % MOD;
no2[k + val] = 1;
v2[k - val] = (v[k - val] + v[k]) % MOD;
no2[k - val] = 1;
}
}
s += val;
memcpy(v,v2,sizeof(v));
memcpy(no,no2,sizeof(no));
}
printf("%d", v[mij+x]);
return 0;
}