Pagini recente » Cod sursa (job #2112863) | Cod sursa (job #986327) | Cod sursa (job #2587827) | Cod sursa (job #1208431) | Cod sursa (job #1811439)
#include <iostream>
#include <fstream>
#define Nmax 45000
using namespace std;
ifstream f("diamant.in");
ofstream g("diamant.out");
int aux[2*Nmax+1], auxp[2*Nmax+1], auxm[2*Nmax+1],i,j,k,p,m,n,x,smax,val;
int *nr, *nrp, *nrm;
int main()
{
nr=aux+Nmax;
nrp=auxp+Nmax;
nrm=auxm+Nmax;
f>>n>>m>>x;
nr[0]=1;
smax=n*(n+1)/2*m*(m+1)/2;
for(i=1; i<=n; i++)
for(j=1; j<=m; j++)
{
val=i*j;
for(k=smax-val; k>=-smax; k--) nrp[k+val]+=nr[k];
for(k=-smax+val; k<=smax; k++) nrm[k-val]+=nr[k];
for(k=-smax; k<=smax; k++) nr[k]+=nrm[k], nr[k]+=nrp[k], nrm[k]=0, nrp[k]=0;
}
if(x<=smax && x>=-smax) g<<nr[x]<<'\n';
else g<<0<<'\n';
return 0;
}