Pagini recente » Cod sursa (job #2061659) | Cod sursa (job #2666428) | Cod sursa (job #147125) | Cod sursa (job #2567812) | Cod sursa (job #2360726)
#include <bits/stdc++.h>
using namespace std;
ifstream in("diamant.in");
ofstream out("diamant.out");
const int N = 25;
const int K = 1e5;
const int MOD = 10000;
int dp[2][K];
int val(int x)
{
if (x<0)
return 45000-x;
else
return x;
}
int main()
{
int n,m,x,s=0;
in >> n >> m >> x;
for (int i = 1; i<=n; i++)
for (int j = 1; j<=m; j++)
s+=i*j;
if (x>s || x<-s)
out << "0";
else
{
bool t = 1;
dp[0][0] = 1;
int g = 0;
for (int i = 1; i<=n; i++)
for (int j = 1; j<=m; j++)
{
g+=i*j;
for (int k = -g; k<=g; k++)
{
int z = val(k);
dp[t][z] = dp[!t][z];
if (k-i*j>=-s)
dp[t][z] = (dp[t][z]+dp[!t][val(k-i*j)])%MOD;
if (k+i*j<=s)
dp[t][z] = (dp[t][z]+dp[!t][val(k+i*j)])%MOD;
}
t = !t;
}
out << dp[!t][val(x)];
}
}