Pagini recente » Cod sursa (job #149868) | Cod sursa (job #2253397) | Cod sursa (job #1736606) | Cod sursa (job #2482419) | Cod sursa (job #1889891)
#include <cstdio>
#define mod 10000
using namespace std;
int sume1 [201010];
int sume2 [201010];
int sume3 [201010];
#define sume1 (sume1 + 100000)
#define sume2 (sume2 + 100000)
#define sume3 (sume2 + 100000)
int v[500];
int main()
{
freopen("diamant.in","r",stdin);
freopen("diamant.out","w",stdout);
int n,m,x,i,j,k=0,maxi=0,mini=0,sum;
scanf("%d%d%d",&n,&m,&x);
if(n*(n+1)*m*(m+1)<4*x)
{
printf("0");
return 0;
}
for(i=1; i<=n; i++)
{
for(j=1; j<=m; j++)
{
k++;
v[k]=i*j;
}
}
for(i=1; i<=k; i++)
{
maxi+=v[i];
mini-=v[i];
for(j=maxi; j>=mini; j--)
sume1[j+v[i]]+=sume1[j];
for(j=mini; j<=maxi; j++)
sume2[j-v[i]]+=sume2[j];
for(j=mini; j<=maxi; j++)
{
sum=sume1[j]+sume2[j]-sume3[j];
sum%=mod;
sume1[j]=sum;
sume2[j]=sum;
sume3[j]=sum;
}
sume1[v[i]]++;
sume1[-v[i]]++;
sume2[v[i]]++;
sume2[-v[i]]++;
sume3[v[i]]++;
sume3[-v[i]]++;
}
printf("%d",sume1[x]%mod);
return 0;
}