Pagini recente » Cod sursa (job #1906832) | Cod sursa (job #3277505) | Cod sursa (job #446903) | Cod sursa (job #2656204) | Cod sursa (job #51901)
Cod sursa(job #51901)
#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;
// if (X<=-Smax || X>=Smax) {
// printf("0\n");
// return 0;
// }
for (i=1;i<=N;++i)
for (j=1;j<=M;++j) {
val=i*j;
for (k=-2*X;k<2*X;++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=-2*X;k<2*X;++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=-2*X;k<2*X;++k) {
s1[k+Smax]+=s2[k+Smax];
if (s1[k+Smax]>=Mod)
s1[k+Smax]-=Mod;
s2[k+Smax]=0;
}
}
printf("%d\n",s1[X+Smax]);
fclose(stdin); fclose(stdout);
return 0;
}