Cod sursa(job #2746881)

Utilizator truscalucaLuca Trusca truscaluca Data 28 aprilie 2021 17:22:30
Problema Heapuri Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.01 kb
#include <iostream>
#include <unordered_map>

using namespace std;

const int nMax = 105;

struct Suma {
    int a, b, c;
};

unordered_map<int, Suma> sume;
int n, s, v[nMax];

int main() {
    freopen("loto.in", "r", stdin);
    freopen("loto.out", "w", stdout);

    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);

    cin >> n >> s;
    for (int i = 0; i < n; i++) {
        cin >> v[i];
    }

    for (int i1 = 0; i1 < n; i1++) {
        for (int i2 = 0; i2 < n; i2++) {
            for (int i3 = 0; i3 < n; i3++) {
                sume[v[i1] + v[i2] + v[i3]] = {v[i1], v[i2], v[i3]};
            }
        }
    }

    for (auto &suma1: sume) {
        auto suma2 = sume.find(s - (suma1.second.a + suma1.second.b + suma1.second.c));
        if (suma2 != sume.end()) {
            cout << suma1.second.a << " " << suma1.second.b << " " << suma1.second.c << " "
                 << suma2->second.a << " " << suma2->second.b << " " << suma2->second.c;
            return 0;
        }
    }

    cout << "-1";

    return 0;
}