Pagini recente » Cod sursa (job #2286413) | Cod sursa (job #1110744) | Cod sursa (job #1002469) | Cod sursa (job #1451451) | Cod sursa (job #282570)
Cod sursa(job #282570)
#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 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;
for(k = 100000; k >=0; k--)
{
if (no[k] != 0)
{
no2[k] = 1;
v2[k] = v[k];
}
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;
}
}
for(k = 100000; k >=0; k--,no[k] = no2[k], no2[k] = 0,v[k] = v2[k]);
}
printf("%d", v[mij+x]);
return 0;
}