Pagini recente » Cod sursa (job #2639045) | Cod sursa (job #1240240) | Cod sursa (job #2387057) | Cod sursa (job #1494029) | Cod sursa (job #1901353)
#include <fstream>
#include <cstdlib>
#include <cmath>
#include <cstring>
#define A(i) (((i)<0)?(An[-(i)]):(Ap[(i)]))
#define B(i) (((i)<0)?(Bn[-(i)]):(Bp[(i)]))
using namespace std;
ifstream fin("diamant.in");
ofstream fout("diamant.out");
int cost[1001];
int Ap[50000],An[50000],Bp[50000],Bn[50000];
const int mod=10000;
int main()
{
int n,m,x,i,j;
fin>>n>>m>>x;
int rez=0;
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
rez+=i*j;
cost[(i-1)*n+j]=i*j;
}
}
A(0)=1;
int tot=n*m;
for(i=1;i<=tot;i++)
{
memcpy(Bn,An,sizeof(An));
memcpy(Bp,Ap,sizeof(Ap));
for(j=-rez;j<=rez;j++)
{
A(j)=(B(j)+B(j-cost[i])+B(j+cost[i]))%mod;
}
}
if(abs(x)>rez) fout<<0;
else
{
fout<<A(x);
}
}