Cod sursa(job #3295003)

Utilizator itachi_uchihaDarius itachi_uchiha Data 1 mai 2025 14:05:43
Problema Loto Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.16 kb
#include <fstream>
#include <vector>
#include <algorithm>

using namespace std;

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

int N;
long long S;
vector<int> v;
vector<pair<long long, vector<int>>> sumA, sumB;

void generate3(const vector<int>& v, vector<pair<long long, vector<int>>>& sums) {
    for (int i = 0; i < N; ++i)
        for (int j = 0; j < N; ++j)
            for (int k = 0; k < N; ++k) {
                long long s = 1LL * v[i] + v[j] + v[k];
                sums.push_back({s, {v[i], v[j], v[k]}});
            }
}

int main() {
    fin >> N >> S;
    v.resize(N);
    for (int i = 0; i < N; ++i)
        fin >> v[i];

    generate3(v, sumA);
    generate3(v, sumB);


    sort(sumB.begin(), sumB.end());

    for (auto& a : sumA) {
        long long need = S - a.first;


        auto it = lower_bound(sumB.begin(), sumB.end(), make_pair(need, vector<int>()));
        if (it != sumB.end() && it->first == need) {
            for (int x : a.second)
                fout << x << " ";
            for (int x : it->second)
                fout << x << " ";
            fout << "\n";
            return 0;
        }
    }

    fout << -1 << "\n";
    return 0;
}