Pagini recente » Cod sursa (job #998833) | Cod sursa (job #3178755) | Cod sursa (job #1230391) | Cod sursa (job #233559) | Cod sursa (job #1811470)
#include <cstdio>
using namespace std;
const int N=45000;
int aux[2*N+1],auxp[2*N+1],auxm[2*N+1];
int *nr,*nrp,*nrm;
int main()
{
freopen("diamant.in","r",stdin);
freopen("diamant.out","w",stdout);
int i,j,n,m,s=0,k,rez,x;
scanf("%d %d %d",&n,&m,&rez);
/*for(i=1;i<=n;++i)
{
for(j=1;j<=m;++j){
printf("%d ",i*j);
s+=(i*j);
}
printf("\n");
}
printf("%d",s);*/
nr=aux+N;
nrp=auxp+N;
nrm=auxm+N;
s=m*(m+1)/2*n*(n+1)/2;
/* for(i=1;i<=n;++i)
for(j=1;j<=m;++j)
s+=(i*j);*/
nr[0]=1;
for(i=1;i<=n;++i)
for(j=1;j<=m;++j)
{
x=i*j;
//for(k=-s;k<=s-x;++k)
for(k=s-x;k>=-s;--k){
nrp[k+x]+=nr[k];
if(nrp[k]>=10000)
nrp[k]-=10000;
}
//for(k=s;k>=-s+x;--k)
for(k=-s+x;k<=s;++k){
nrm[k-x]+=nr[k];
if(nrm[k]>=10000)
nrm[k]-=10000;
}
for(k=-s;k<=s;++k)
{
nr[k]+=(nrm[k]+nrp[k]);
if(nr[k]>=10000)
nr[k]-=10000;
nrm[k]=0;
nrp[k]=0;
}
}
/* y=0;
for(i=-s+rez;i<=s-rez;++i)
{
if(nrp[])
}*/
printf("%d",nr[rez]);
return 0;
}