Pagini recente » Cod sursa (job #2727442) | Cod sursa (job #86018) | Cod sursa (job #412736) | Cod sursa (job #1284962) | Cod sursa (job #1550999)
#include<fstream>
#include<iostream>
#include <cmath>
#define mod 10000
using namespace std;
ifstream f("diamant.in");
ofstream g("diamant.out");
int N, M ,X, D, v[805], dp[3][44105], sMax, val;
void adun()
{
dp[1][0] = dp[2][0];
for(int i = 1; i <= sMax; i++){
dp[1][i]+= dp[2][i];
dp[1][i]%= mod;
}
}
void afisez()
{
for(int i = 0; i <= sMax; i++) g << dp[1][i] << " ";
g << "\n";
for(int i = 0; i <= sMax; i++) g << dp[2][i] << " ";
g << "\n";
}
int main()
{
f >> N >> M >> X;
sMax = ((N *(N + 1))/2) * ((M *(M + 1))/2);
dp[1][0] = 1;
for(int i = 1; i <= N; i++)
for(int j = 1; j <= M; j++){
val = i * j;
for(int j = sMax - val; j >= 0; j--)
{
if(dp[1][j] != 0 ){
dp[1][j + val] += dp[1][j];
dp[1][j + val]%= mod;
}
}
val = (N - i + 1) * (M - j + 1);
for(int j = val; j <= sMax; j++)
{
dp[2][j - val]+= dp[1][j];
dp[2][j - val]%= mod;
}
}
adun();
X = abs(X);
if(X > sMax) g << 0;
else g << dp[1][X];
return 0;
}