Cod sursa(job #2882497)
Utilizator | Bratu Mihai-Alexandru Mihai7218 | Data | 31 martie 2022 14:59:06 |
---|---|---|---|
Problema | Diamant | Scor | 20 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.69 kb |
#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 = 44100; k >= -44100; k--)
{
if (dp[neg+k] > 0)
{
d[neg+k+val] += dp[neg+k];
d[neg+k-val] += dp[neg+k];
}
}
}
fout << d[neg+x];
return 0;
}