Pagini recente » Cod sursa (job #2691916) | Cod sursa (job #1267518) | Cod sursa (job #1817719) | Cod sursa (job #1087038) | Cod sursa (job #1194169)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in ("diamant.in");
ofstream out ("diamant.out");
int n, m, X, p, q, maxval;
int dp[2][45600];
int abs (int x)
{
if (x>0)
return x;
else
return x*(-1);
}
int main()
{
in>>n>>m>>X;
maxval = (n*(n+1)*m*(m+1))/2/2;
if (maxval < abs(X))
{
cout<<"0\n";
return 0;
}
dp[0][0]=1;
p=1;
q=0;
for (int i=1;i<=n;i++)
{
for (int j=1;j<=m;j++)
{
for (int k=0;k<=maxval;k++)
{
dp[p][k]=dp[q][k] + dp[q][k+i*j] + dp[q][abs(k-i*j)];
dp[p][k]%=10000;
}
q=p;
p=1-p;
}
}
out<<dp[q][abs(X)];
return 0;
}