Pagini recente » Cod sursa (job #993235) | Cod sursa (job #935984) | Cod sursa (job #1797630) | Cod sursa (job #942843) | Cod sursa (job #1185404)
#include<iostream>
#include<cstdio>
#include<cmath>
#define MOD 10000
#define NMAX 1000000
using namespace std;
int dc[NMAX], da[NMAX];
int main()
{
FILE *fin, *fout;
fin=fopen("diamant.in", "r");
fout=fopen("diamant.out", "w");
int C_MAX, n, m, i, x, j, k;
fscanf(fin, "%d %d %d", &m, &n, &x);
C_MAX = n*(n+1)/2*m*(m+1)/2;
for(j=0; j<=C_MAX; j++)
dc[0]=1,
da[0]=1;
for(i=1; i<=n; i++)
for(k=1; k<=m; k++) {
for(j=0; j<=C_MAX; j++) {
dc[j] = da[j+i*k] + da[j];
if(j < i*k)
dc[j] += da[i*k-j];
else
dc[j] +=da[j-i*k];
dc[j]=dc[j]%MOD;
}
for(j=0; j<=C_MAX; j++)
da[j]=dc[j];
}
if(x<0)
x=-x;
if(x<=C_MAX)
fprintf(fout, "%d", dc[x]);
else
fprintf(fout, "0");
}