Pagini recente » Cod sursa (job #2769928) | Cod sursa (job #1675709) | Cod sursa (job #2621658) | Cod sursa (job #1476138) | Cod sursa (job #2360719)
#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;
for (int i = 1; i<=n; i++)
for (int j = 1; j<=m; j++)
{
for (int k = -s; k<=s; 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)];
}
}