Pagini recente » Cod sursa (job #1390491) | Cod sursa (job #226575) | Cod sursa (job #1928413) | Cod sursa (job #811559) | Cod sursa (job #2629938)
#include <fstream>
using namespace std;
int a[2][100001];
int inv(int val)
{
if(val<0)
return 45000-val;
return val;
}
int main()
{
ifstream fin("diamant.in");
ofstream fout("diamant.out");
int n,m,x,y,s=0,t,sum;
fin>>n>>m>>x;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
s+=i*j;
if(x>s || x<-s)
fout<<0;
else{
t=1;
a[0][0]=1;
sum=0;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++){
sum+=i*j;
int val=s-sum;
int mi=max(x-val,-sum);
int ma=min(x+val,sum);
for (int q=mi;q<=ma;q++){
y=inv(q);
a[t][y]=a[1-t][y];
if(q-i*j>=-s)
a[t][y]=(a[t][y]+a[1-t][inv(q-i*j)])%10000;
if(q+i*j<=s)
a[t][y]=(a[t][y]+a[1-t][inv(q+i*j)])%10000;
}
t=1-t;
}
fout<<a[1-t][inv(x)];
}
return 0;
}