Pagini recente » Cod sursa (job #676300) | Cod sursa (job #2134106) | Cod sursa (job #2960994) | Cod sursa (job #704503) | Cod sursa (job #2844147)
#include <bits/stdc++.h>
#define mod 10000
using namespace std;
ifstream fin("diamant.in");
ofstream fout("diamant.out");
int n, m, x, a[410], k, dp[3][90006];
/// obs : 200*399
///dp[i][j] - nr de diamante cu pana la poz i cu val j
int main()
{
fin >> n >> m >> x;
for(int i = 1; i <= n; i++)
for(int j = 1; j <= m; j++)
a[++k] = i*j;
if(x > 45000 || x < -45000)
{
fout << "0\n";
return 0;
}
x = x + 45000;
dp[0][45000] = 1;
for(int i = 1; i <= k; i++)
{
for(int j = 0; j <= 90000; j++)
{
dp[1][j] = (dp[0][j + a[i]] + dp[0][j]) % mod;
if(j >= a[i])
dp[1][j] += (dp[0][j - a[i]] % mod);
}
for(int j = 0; j <= 90000; j++)
dp[0][j] = dp[1][j];
}
fout << dp[0][x] % mod;
return 0;
}