Cod sursa(job #2935418)

Utilizator matthriscuMatt . matthriscu Data 6 noiembrie 2022 18:33:21
Problema Loto Scor 95
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.11 kb
#include <bits/stdc++.h>
using namespace std;

struct elem {
    int v[3], total;

    elem(int x, int y, int z) {
        v[0] = x;
        v[1] = y;
        v[2] = z;
        total = x + y + z;
    }
};

int main() {
    ifstream fin("loto.in");
    ofstream fout("loto.out");

    int n, s;
    fin >> n >> s;

    vector<int> v(n);
    for (int i = 0; i < n; ++i)
        fin >> v[i];

    vector<elem> mitm;
    for (int i = 0; i < n; ++i)
        for (int j = i; j < n; ++j)
            for (int k = j; k < n; ++k)
                mitm.push_back(elem(v[i], v[j], v[k]));

    auto cmp = [](const elem& e1, const elem& e2) {
        return e1.total < e2.total;
    };

    sort(mitm.begin(), mitm.end(), cmp);

    int i = 0, j = mitm.size() - 1;
    while (i < j) {
        if (mitm[i].total + mitm[j].total == s) {
            for (const elem& e : {mitm[i], mitm[j]})
                for (int i = 0; i < 3; ++i)
                    fout << e.v[i] << ' ';
            fout << '\n';
            return 0;
        } else if (mitm[i].total + mitm[j].total < s)
            ++i;
        else
            --j;
    }

    fout << "-1\n";
}