Pagini recente » Cod sursa (job #987515) | Cod sursa (job #353318) | Cod sursa (job #2952355) | Cod sursa (job #86687) | Cod sursa (job #3003114)
#include<cstdio>
using namespace std;
FILE*in=fopen("diamant.in","r");
FILE*out=fopen("diamant.out","w");
const int MOD=10000,NMAX=25,CMAX=44105;
int n,m,i,j,x;
int mat[NMAX][NMAX][2*CMAX];
bool bo[NMAX][NMAX][2*CMAX];
int fun(int a, int b, int c)
{
int am=a;
int bm=b;
if(bo[a][b][c+CMAX]==1)
{
return mat[a][b][c+CMAX];
}
int c1,c2,c3;
c1=c-a*b;
c2=c;
c3=c+a*b;
if(b==1)
{
if(a==1)
{
if(c==-1||c==0||c==1)
{
return 1;
}
else
{
return 0;
}
}
else
{
b=m;
a--;
}
}
else
{
b--;
}
int g=(fun(a,b,c1)+fun(a,b,c2)+fun(a,b,c3))%MOD;
bo[am][bm][c+CMAX]=1;
mat[am][bm][c+CMAX]=g;
return g;
}
int main()
{
fscanf(in,"%d%d%d",&n,&m,&x);
fprintf(out,"%d",fun(n,m,x));
}