Pagini recente » Cod sursa (job #667730) | Cod sursa (job #105863) | Profil AntoniaPopovici | Cod sursa (job #2635880) | Cod sursa (job #2591749)
#include <fstream>
using namespace std;
ifstream f("diamant.in");
ofstream g("diamant.out");
int n,m,i,j,k,x,s,d[2][100001],t,s2,mod=10000,y;
int invers(int x)
{
if(x<0)
{
return 45000-x;
}
else
{
return x;
}
}
int main()
{
f>>n>>m>>x;
for(i=1; i<=n; i++)
{
for(j=1; j<=m; j++)
{
s+=i*j;
}
}
if(x>s || x<-s)
{
g<<0;
}
else
{
t=1;
d[0][0]=1;
s2=0;
for(i=1; i<=n; i++)
{
for(j=1; j<=m; j++)
{
s2+=i*j;
int val = s - s2;
int mi = max(x - val,-s2);
int ma = min(x + val,s2);
for(k=mi; k<=ma; k++)
{
y=invers(k);
d[t][y]=d[1-t][y];
if(k-i*j>=-s)
{
d[t][y]=(d[t][y]+d[1-t][invers(k-i*j)])%mod;
}
if(k+i*j<=s)
{
d[t][y]=(d[t][y]+d[1-t][invers(k+i*j)])%mod;
}
}
t=1-t;
}
}
g<<d[1-t][invers(x)];
}
}