Cod sursa(job #2882502)

Utilizator Mihai7218Bratu Mihai-Alexandru Mihai7218 Data 31 martie 2022 15:03:36
Problema Diamant Scor 50
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("diamant.in");
ofstream fout("diamant.out");
long long n, m, x, i, j;
vector <long long> d, dp;
const long long neg = 100000;
int main()
{
    fin >> n >> m >> x; d.resize(200001); dp.resize(200001);
    d[neg] = 1;
    for (i = 1; i <= n; i++)
        for (j = 1; j <= m; j++)
        {
            long long val = i*j;
            dp = d;
            for (long long k = 100000; k >= -100000; 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;
}