Pagini recente » Cod sursa (job #1173064) | Cod sursa (job #968791) | Cod sursa (job #1330175) | Cod sursa (job #569821) | Cod sursa (job #1772427)
#include <iostream>
#include <cstdio>
#define NMAX 21
#define SMAX 100000
using namespace std;
int N,M,X;
int dp[NMAX*NMAX][SMAX],a[NMAX][NMAX];
int ap[NMAX*NMAX],v[NMAX*NMAX],k;
int Smin,Smax;
void citire()
{
scanf("%d%d%d",&N,&M,&X);
}
void calcS()
{
for(int i=1;i<=N;i++)
for(int j=1;j<=M;j++)
{
Smax += i*j;
v[++k]=i*j;
}
Smin = -Smax;
}
void rezolva()
{
if(X<Smin || X>Smax)
{
printf("0\n");
return;
}
int target = X - Smin;
for(int i=0;i<=k;i++)
dp[i][0]=1;
for(int i=1;i<=k;i++)
for(int j=1;j<=target;j++)
dp[i][j] = (dp[i-1][j] + dp[i-1][j-v[i]] + dp[i-1][j-2*v[i]])%10000;
printf("%d\n",dp[k][target]);
}
int main()
{
freopen("diamant.in","r",stdin);
freopen("diamant.out","w",stdout);
citire();
calcS();
rezolva();
return 0;
}