Pagini recente » Cod sursa (job #214103) | Cod sursa (job #1466752) | Cod sursa (job #122245) | Cod sursa (job #859363) | Cod sursa (job #51900)
Cod sursa(job #51900)
#include <stdio.h>
#define fin "diamant.in"
#define fout "diamant.out"
#define Smax 99226
#define Mod 10000
int s1[2*Smax]={0},s2[2*Smax]={0};
int N,M,X;
int main() {
int i,j;
register int k,val;
freopen(fin,"r",stdin); freopen(fout,"w",stdout);
scanf("%d%d%d",&N,&M,&X);
s1[Smax]=1;
for (i=1;i<=N;++i)
for (j=1;j<=M;++j) {
val=i*j;
for (k=-Smax;k<Smax;++k)
if (k-val>-Smax && s1[k-val+Smax]) {
s2[k+Smax]=s2[k+Smax]+s1[k-val+Smax];
if (s2[k+Smax]>=Mod)
s2[k+Smax]-=Mod;
}
val*=-1;
for (k=-Smax;k<Smax;++k)
if (k-val<Smax && s1[k-val+Smax]) {
s2[k+Smax]+=s1[k-val+Smax];
if (s2[k+Smax]>=Mod)
s2[k+Smax]-=Mod;
}
for (k=-Smax;k<Smax;++k) {
s1[k+Smax]+=s2[k+Smax];
if (s1[k+Smax]>=Mod)
s1[k+Smax]-=Mod;
s2[k+Smax]=0;
}
}
if (X<=-Smax || X>=Smax)
printf("0\n");
else
printf("%d\n",s1[X+Smax]);
fclose(stdin); fclose(stdout);
return 0;
}