Pagini recente » Borderou de evaluare (job #797278) | Borderou de evaluare (job #1254515) | Borderou de evaluare (job #2949796) | Borderou de evaluare (job #1165832) | Cod sursa (job #2882501)
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("diamant.in");
ofstream fout("diamant.out");
int n, m, x, i, j;
vector <int> d, dp;
const int neg = 50000;
int main()
{
fin >> n >> m >> x; d.resize(100001); dp.resize(100001);
d[neg] = 1;
for (i = 1; i <= n; i++)
for (j = 1; j <= m; j++)
{
int val = i*j;
dp = d;
for (int k = 50000; k >= -50000; k--)
{
if (dp[neg+k] > 0)
{
d[neg+k+val] += dp[neg+k];
d[neg+k-val] += dp[neg+k];
d[neg+k+val] %= 10000;
d[neg+k-val] %= 10000;
}
}
}
fout << d[neg+x]%10000;
return 0;
}