Cod sursa(job #3128268)

Utilizator GFA03Gavrila Florin-Alexandru GFA03 Data 9 mai 2023 08:56:42
Problema Loto Scor 5
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.25 kb
#include <bits/stdc++.h>

#define maxn 105

int v[maxn], sol[maxn*maxn*maxn];
int nr;

std::vector<int> res;

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

std::unordered_map<int, abc> map;

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

int main()
{
    int n, S, sum;
    fin >> n >> S;
    for(int i = 0; i < n; i++)
        fin >> v[i];

    for(int i = 0; i < n; i++)
        for(int j = 0; j < n; j++)
            for(int k = 0; k < n; k++)
            {
                sum = v[i] + v[j] + v[k];
                sol[nr++] = sum;
                map[sum] = {v[i], v[j], v[k]};
            }
    int t = nr-1;
    for(int i = 0; i < n; i++)
    {
        while(sol[i] + sol[t] > S)
            t--;
        if(t < 0) 
            break;
        if(sol[i] + sol[t] == S)
        {
            res.push_back(map[sol[i]].a);
            res.push_back(map[sol[i]].b);
            res.push_back(map[sol[i]].c);
            res.push_back(map[sol[t]].a);
            res.push_back(map[sol[t]].b);
            res.push_back(map[sol[t]].c);
            std::sort(res.begin(), res.end());
            for(int i: res)
            {
                fout << i << " ";
            }
            return 0;
        }
    }
    fout << -1;
    fin.close();
    fout.close();
    return 0;
}