Pagini recente » Cod sursa (job #824414) | Cod sursa (job #2280593) | Cod sursa (job #1178244) | Cod sursa (job #236500) | Cod sursa (job #1774847)
#include<cstdio>
#include<cstring>
const int SMAX=50000,SMIN=-50000,MOD=10000;
int d[5][1<<16];
int Get_a(int a,int poz)
{
if(poz>=0)
return a;
return a+1;
}
int Get_poz(int a,int poz)
{
if(poz>=0)
return poz;
return -poz;
}
int main()
{
FILE *in=fopen("diamant.in","r");
int n,m,x;
fscanf(in,"%d %d %d ",&n,&m,&x);
fclose(in);
FILE *out=fopen("diamant.out","w");
if(x>SMAX)
{
fprintf(out,"%d\n",0);
fclose(out);
return 0;
}
d[1][0]=1;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
memcpy(d[3],d[1],sizeof d[1]);
memcpy(d[4],d[2],sizeof d[2]);
for(int s=SMAX;s>=SMIN;s--)
{
d[Get_a(1,s)][Get_poz(1,s)]=d[Get_a(3,s-i*j)][Get_poz(3,s-i*j)]+d[Get_a(3,s)][Get_poz(3,s)]+d[Get_a(3,s+i*j)][Get_poz(3,s+i*j)];
d[Get_a(1,s)][Get_poz(1,s)]%=MOD;
}
}
}
fprintf(out,"%d\n",d[1][Get_poz(1,x)]);
fclose(out);
return 0;
}