Pagini recente » Cod sursa (job #1570673) | Cod sursa (job #738640) | Cod sursa (job #2913145) | Cod sursa (job #2287261) | Cod sursa (job #1631574)
#include<cstdio>
using namespace std;
int n,m,x,v[401],cate,g[88206],s2,cg[88206],ccg[88206];
int main(){
freopen("diamant.in","r",stdin);
freopen("diamant.out","w",stdout);
scanf("%d%d%d",&n,&m,&x);
int MM;
if(n!=1&&m!=1)
MM=(n*m*(m+1)*(n+1)/4);
if(n==1&&m==1)
MM=1;
if(n==1&&m!=1)
MM=(m*(m+1))/2;
if(m==1&&n!=1)
MM=(n*(n+1))/2;
if(x>MM)
printf("0");
else
if(x<(-1)*MM)
printf("0");
else{
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
v[++cate]=i*j;
for(int i=1;i<=cate;i++){
for(int s=88200;s>=0;s--){
if(g[s]!=0&&s+v[i]<=88200){
g[s+v[i]]+=g[s];
if(g[s+v[i]]>10000)
g[s+v[i]]-=10000;
}
s2=88200-s;
if(cg[s2]!=0&&s2-v[i]>=0){
cg[s2-v[i]]+=cg[s2];
if(cg[s2-v[i]]>10000)
cg[s2-v[i]]-=10000;
}
}
g[44100+v[i]]++;
cg[44100-v[i]]++;
for(int s=0;s<=88200;s++){
g[s]+=(cg[s]-ccg[s]);
if(g[s]<0)
g[s]+=10000;
if(g[s]>10000)
g[s]-=10000;
cg[s]=g[s];
ccg[s]=g[s];
}
}
g[44100]++;
printf("%d",g[44100+x]);
}
return 0;
}