Pagini recente » Cod sursa (job #1748227) | Cod sursa (job #2440313) | Cod sursa (job #1382438) | Cod sursa (job #3208767) | Cod sursa (job #1308486)
#include <stdio.h>
#define MOD 10000
#define MAXX 44100
#define LIM 88200
#define MAXK 400
int d[2][LIM+1], v[MAXK];
int main(){
int n, m, x, k, i, j;
FILE *fin, *fout;
fin=fopen("diamant.in", "r");
fout=fopen("diamant.out", "w");
fscanf(fin, "%d%d%d", &n, &m, &x);
if((x>MAXX)||(x<-MAXX)){
fprintf(fout, "0\n");
}else{
k=0;
for(i=1; i<=n; i++){
for(j=1; j<=m; j++){
v[k++]=i*j;
}
}
d[1][MAXX]=1;
for(i=0; i<k; i++){
for(j=0; j<=LIM; j++){
d[i&1][j]=d[(i+1)&1][j];
if(j+v[i]<=LIM){
d[i&1][j]+=d[(i+1)&1][j+v[i]];
}
if(j-v[i]>=0){
d[i&1][j]+=d[(i+1)&1][j-v[i]];
}
d[i&1][j]%=MOD;
}
}
fprintf(fout, "%d\n", d[(k-1)&1][x+MAXX]);
}
fclose(fin);
fclose(fout);
return 0;
}