Pagini recente » Cod sursa (job #1087156) | Cod sursa (job #3284562) | Cod sursa (job #1597219) | Cod sursa (job #1485198) | Cod sursa (job #1774836)
#include<cstdio>
const int SMAX=50000,SMIN=-50000,MOD=10000;
int d[5][SMAX+2];
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 || x<SMIN)
{
fprintf(out,"%d\n",0);
}
d[1][0]=1;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
for(int i=0;i<=SMAX;i++)
{
d[3][i]=d[1][i];
d[4][i]=d[2][i];
}
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;
}