Pagini recente » Cod sursa (job #2827420) | Cod sursa (job #1274354) | Cod sursa (job #782373) | Cod sursa (job #1944502) | Cod sursa (job #2529741)
#include <iostream>
#include <fstream>
#include <cstring>
#include <unordered_map>
#define VAL 44100
#define MOD 10000
using namespace std;
ifstream f("diamant.in");
ofstream g("diamant.out");
int sum, m, n, x;
unordered_map <int, int> dp, dp1, dp2;
void rucsac(int val)
{ dp1.clear();
dp2.clear();
for(int i=sum; i>=-sum; i--) dp1[i] = dp[i-val];
for(int i=-sum; i<=sum; i++) dp2[i] = dp[i+val];
for(int i=-sum; i<=sum; i++) dp[i] = (dp[i] + dp1[i] + dp2[i]) % MOD;
}
int main()
{
f >> n >> m >> x;
if(x < 0) x = -x;
if(x > VAL)
{ g << 0 << '\n';
return 0;
}
for(int i=1; i<=n; i++)
for(int j=1; j<=m; j++) sum = sum + i * j;
dp[0] = 1;
for(int i=1; i<=n; i++)
for(int j=1; j<=m; j++)
rucsac(i*j);
g << dp[x] << '\n';
return 0;
}