Pagini recente » Cod sursa (job #1804655) | Cod sursa (job #735245) | Cod sursa (job #2365089) | Cod sursa (job #621875) | Cod sursa (job #1552347)
#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;
}
}
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 k = sMax - val; k >= 0; k--)
{
dp[1][k + val] += dp[1][k];
dp[1][k + val]%= mod;
}
}
for(int i = 1; i <= N; i++)
for(int j = 1; j <= M; j++){
val= i * j;
for(int k = val; k < sMax; k++)
{
dp[2][k - val]+= dp[1][k];
dp[2][k - val]%= mod;
}
}
adun();
X = abs(X);
if(X > sMax) g << 0;
else g << dp[1][X];
return 0;
}