Pagini recente » Cod sursa (job #118854) | Cod sursa (job #852468) | Cod sursa (job #1846724) | Cod sursa (job #562457) | Cod sursa (job #1755213)
#include <cstdio>
#define MOD 10000
#define MAXN 400
#define S 44100
int k, v[MAXN], s[S*2+1], p[S*2+1], m[S*2+1];
#define s (s+S)
#define p (p+S)
#define m (m+S)
int main()
{
freopen("diamant.in", "r", stdin);
freopen("diamant.out", "w", stdout);
int n, mn, i, j, x, maxs, e;
scanf("%d%d%d", &n, &mn, &x);
maxs=n*(n+1)*mn*(mn+1)/4;
for(i=1;i<=n;++i)
for(j=1;j<=mn;++j)
v[k++]=i*j;
s[0]=1;
if(x < - maxs || x > maxs)
{
printf("0");
return 0;
}
for(e=0;e<k;++e)
{
for(i=maxs-v[e];i>=-maxs;--i)
if(s[i])
p[i+v[e]]=p[i+v[e]] + s[i];
for(i=-maxs+v[e];i<=maxs;++i)
if(s[i])
m[i-v[e]]=m[i-v[e]] + s[i];
for(i=-maxs;i<=maxs;++i)
{
s[i]=(s[i]+p[i]+m[i])%MOD;
p[i]=0;
m[i]=0;
}
}
printf("%d", s[x]);
return 0;
}