Pagini recente » Cod sursa (job #1532524) | Cod sursa (job #1279399) | Cod sursa (job #1407089) | Cod sursa (job #2616869) | Cod sursa (job #2574240)
#include <fstream>
using namespace std;
ifstream fin("diamant.in");
ofstream fout("diamant.out");
const int c = 44100;
const int r = 10000;
int v[401];
int dp[2][2*44100+1];
int main()
{
int smax = 0, n, m, i, j, x, l;
fin >> n >> m >> x;
for (i = 1; i<=n; i++)
for (j = 1; j<=m; j++)
{
smax = smax + i*j;
v[(i-1)*m+j] = i*j;
}
if (x < 0)
x = -x;
if (x > smax)
{
fout << 0;
return 0;
}
for (l = 0, i = 1; i<=n*m; i++, l = 1-l)
{
for (j = -smax; j<=smax; j++)
{
dp[l][j+c] = dp[1-l][j+c];
if (j >= -smax+v[i])
dp[l][j+c] += dp[1-l][j+c-v[i]];
if (j <= smax-v[i])
dp[l][j+c] += dp[1-l][j+c+v[i]];
dp[l][j+c] %= r;
}
dp[l][v[i]+c]++;
dp[l][-v[i]+c]++;
}
fout << dp[1-l][x+c]%r;
return 0;
}