Pagini recente » Cod sursa (job #1142383) | Cod sursa (job #500538) | Cod sursa (job #1970946) | Cod sursa (job #219535) | Cod sursa (job #1194305)
#include <fstream>
#define MOD 10000
#define MAX_N 45000
using namespace std;
ifstream f ("diamant.in");
ofstream g ("diamant.out");
int n, m, x;
int dp[2][MAX_N];
void read ()
{
f >> n >> m >> x;
}
void solve ()
{
long long suma = (n * (n + 1) * m * (m + 1))/2/2;
if (abs(x) > suma)
{
g << 0;
return ;
}
int l = 0;
for (int i = 1; i <= n; i++)
for (int j = 1; j <= m; j++, l = 1 - l)
for (int k = 0; k <= suma; k++)
{
dp[l - 1][k] = dp[l][k];
if (dp[l - 1][k] <= k)
dp[l - 1][k] = max (dp[l - 1][k], dp[l][k] + dp[l][k + i * j] + dp[l][abs(k - i * j)]);
if (dp[l - 1][k] > MOD)
dp[l - 1][k] -= MOD;
}
g << dp[l][suma];
f.close();
g.close();
}
int main ()
{
read ();
solve ();
return 0;
}