Cod sursa(job #2881131)

Utilizator PalffyLehelPalffy Lehel PalffyLehel Data 30 martie 2022 11:55:22
Problema Diamant Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.15 kb
#include <iostream>
#include <fstream>
#include <cmath>

using namespace std;

int main()
{
    ifstream f("diamant.in");
    ofstream g("diamant.out");

    long n, m, x;
    f >> n >> m >> x;

    int nagyszam = n * (n + 1) / 2 *
                   m * (m + 1) / 2;
    int nagytomb[2 * nagyszam + 1];
    fill_n(nagytomb, 2 * nagyszam + 1, 0);
    nagytomb[0] = 1;

    int nagytombMentes[2 * nagyszam + 1];
    fill_n(nagytombMentes, 2 * nagyszam + 1, 0);

    for (int i = 1; i <= n; i++)
    {
        for (int j = 1; j <= m; j++)
        {
            copy(nagytomb, nagytomb + 2 * nagyszam + 1, nagytombMentes);

            for (int k = nagyszam; k >= 0; k--)
            {
                nagytomb[k] = nagytombMentes[(int)abs(k - i * j)] + nagytombMentes[k] + nagytombMentes[k + i * j];
                nagytomb[k] %= 10000;
            }

//            for (int i = 0; i <= nagyszam; i++)
//            {
//                cout << nagytomb[i] << " ";
//            }
//            cout << endl;
        }
    }

    g << nagytomb[(int)abs(x)];
//    cout << "|" << nagytomb[(int)abs(x)] << "|" << endl;

    return 0;
}