Pagini recente » Cod sursa (job #104600) | Cod sursa (job #1116544) | Cod sursa (job #1728224) | Cod sursa (job #274630) | Cod sursa (job #45432)
Cod sursa(job #45432)
#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 -44200
#define ld 44200
int main()
{
fscanf(f,"%ld %ld %ld",&n,&m,&x);
k=0;
oldp[0]=1;
if ((x>45000)||(-x>45000)) {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;
}