Pagini recente » Cod sursa (job #1352064) | Cod sursa (job #2090030) | Istoria paginii runda/lh10-2 | Cod sursa (job #2623312) | Cod sursa (job #3237255)
#include <fstream>
#include <algorithm>
#define mod 10000
using namespace std;
ifstream fin ("diamant.in");
ofstream fout ("diamant.out");
int n,m,s,i,j,k,maxim,minim,v[401],dpp[2][88201],*dp[2];
int main ()
{
dp[0]=dpp[0]+44100;
dp[1]=dpp[1]+44100;
fin>>n>>m>>s;
if (!(s>=-44100&&s<=44100))
{
fout<<0;
return 0;
}
for (i=1; i<=n; i++)
{
for (j=1; j<=m; j++)
v[++k]=i*j;
}
sort (v+1,v+k+1);
dp[0][0]=1;
minim=maxim=0;
for (i=1; i<=k; i++)
{
for (j=minim; j<=maxim; j++)
dp[i%2][j]=0;
for (j=minim; j<=maxim; j++)
{
dp[i%2][j-v[i]]+=dp[(i+1)%2][j];
dp[i%2][j+v[i]]+=dp[(i+1)%2][j];
dp[i%2][j]+=dp[(i+1)%2][j];
dp[i%2][j-v[i]]%=mod;
dp[i%2][j+v[i]]%=mod;
dp[i%2][j]%=mod;
}
minim-=v[i];
maxim+=v[i];
}
fout<<dp[k%2][s];
return 0;
}