Pagini recente » Cod sursa (job #1581758) | Cod sursa (job #1188797) | Cod sursa (job #1388250) | Cod sursa (job #1370528) | Cod sursa (job #1188786)
#include <cstdio>
#include <cstring>
using namespace std;
int An[65536], Ap[65536];
int Bn[65536], Bp[65536];
int N,M,K;
//----------------------------------------------------------
void ReadData()
{
FILE * fIn = fopen("diamant.in","r");
fscanf (fIn,"%d %d %d",&N,&M,&K);
fclose(fIn);
}
//----------------------------------------------------------
int main()
{
ReadData();
FILE * fOut;
fOut = fopen("diamant.out","w");
if (K>50000)
{
fprintf (fOut,"0\n");
return 0;
}
#define A(i) (((i)<0) ?(An[-(i)]):(Ap[(i)]))
#define B(i) (((i)<0) ?(Bn[-(i)]):(Bp[(i)]))
A(0)=1;
for (int i=1;i<=N;i++)
{
for (int j=1;j<=M;j++)
{
memcpy(Bn,An,sizeof(An));
memcpy(Bp,Ap,sizeof(Bp));
for (int t=50000;t>=-50000;t--)
{
A(t)=B(t-i*j)+B(t)+B(t+i*j);
A(t)%=10000;
}
}
}
fprintf (fOut,"%d\n",A(K));
fclose(fOut);
return 0;
}