Pagini recente » Cod sursa (job #942499) | Cod sursa (job #2927405) | Cod sursa (job #3121942) | Cod sursa (job #1102041) | Cod sursa (job #741503)
Cod sursa(job #741503)
#include <fstream>
#include <cstring>
using namespace std;
int n,m;
int mx;
int P=1,Q,X,nrr=401*401-1;
int dp[2][2*401*401];
int main()
{
ifstream in("diamant.in");
ofstream out("diamant.out");
in>>n>>m>>X;
mx=(n*(n+1)/2)*(m*(m+1)/2)*2;
dp[Q][nrr]=1;
for(int i=1;i<=n;++i)
{
for(int j=1;j<=m;++j)
{
int nr=i*j;
for(int k=-mx;k<=mx;++k)
{
dp[P][k+nr+nrr]+=dp[Q][k+nrr];
dp[P][k-nr+nrr]+=dp[Q][k+nrr];
dp[P][k+nrr]+=dp[Q][k+nrr];
dp[P][k+nr+nrr]%=10000;
dp[P][k-nr+nrr]%=10000;
dp[P][k+nrr]%=10000;
}
memset(dp[Q],0,sizeof(dp[Q]));
P^=Q^=P^=Q;
}
}
if(X>mx || X<-mx)
{
out<<"0\n";
}
else
{
out<<dp[Q][X+nrr]<<'\n';
}
out.close();
return 0;
}