Cod sursa(job #2882497)

Utilizator Mihai7218Bratu 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;
}