Pagini recente » Cod sursa (job #322378) | Cod sursa (job #2617950) | Cod sursa (job #1914001) | Cod sursa (job #3148988) | Cod sursa (job #2966197)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("diamant.in");
ofstream fout("diamant.out");
const int NMAX = 405, MOD = 10000, DPMAX = 90000;
int n, m, x;
int calc[NMAX];
int dp1[DPMAX], dp2[DPMAX];
inline void solve()
{
//x = abs(x);
if(x < 0)
x*=-1;
int itr = 1, sum = 0;
for(int i = 1; i <= n; ++i)
{
for(int j = 1; j <= m; ++ j)
{
sum += i * j;
calc[itr++] = i * j;
}
}
itr--;
if(x == sum)
{
fout << 1;
return;
}
if(sum < x)
{
fout << 0;
return;
}
dp1[sum] = 1;
for(int i = 1; i <= itr; ++ i)
{
for(int j = 1; j <= 2*sum; ++ j)
dp2[j] = dp1[j];
for(int j = 0; j <= 2*sum; ++ j)
{
if(j - calc[i] >= 0)
dp1[j] += dp2[j-calc[i]];
if(j + calc[i] <= 2*sum)
dp1[j] += dp2[j+calc[i]];
dp1[j]%=MOD;
//dp[i][j] += (dp[i-1][j]%MOD + dp[i-1][abs(calc[i] - j)]%MOD)%MOD;
}
}
fout << dp1[x + sum];
}
int main()
{
ios::sync_with_stdio(false);
fin.tie(NULL);
fout.tie(NULL);
fin >> n >> m >> x;
solve();
}