Pagini recente » Cod sursa (job #1089372) | Cod sursa (job #962322) | Cod sursa (job #934726) | Cod sursa (job #2334790) | Cod sursa (job #45427)
Cod sursa(job #45427)
#include <stdio.h>
#include <string.h>
#define XMAX 50000
FILE *f = fopen("diamant.in","rt"), *g = fopen("diamant.out","wt");
long int oldp[XMAX],oldn[XMAX],noup[XMAX],noun[XMAX];
long int i,j,k,n,m,x,max;
long int old(long int x)
{
if (x<0) return oldn[-x];
return oldp[x];
}
#define ls -45000
#define ld 45000
int main()
{
fscanf(f,"%ld %ld %ld",&n,&m,&x);
k=0;
oldp[0]=1;
if ((x>XMAX)||(-x>XMAX)) {fprintf(g,"0\n");return 0;}
for (i=1;i<=n;i++)
for (j=1;j<=m;j++)
{
for (k=ls;k<=ld;k++)
if (k>=0) {noup[k]=old(k-i*j)+old(k)+old(k+i*j);noup[k]%=10000;}
else {noun[-k]=old(k-i*j)+old(k)+old(k+i*j);noun[-k]%=10000;}
memcpy(oldp,noup,sizeof(oldp));
memcpy(oldn,noun,sizeof(oldp));
}
if (x<0) fprintf(g,"%ld\n",noun[-x]);
else fprintf(g,"%ld\n",noup[x]);
fclose(f);
fclose(g);
return 0;
}