Cod sursa(job #3359465)

Utilizator Belea_DariusBelea Mihai Darius Belea_Darius Data 28 iunie 2026 16:46:54
Problema Loto Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.25 kb
//sortare francu + cb francu(teoretic mai rapide)
//poate nu destul si va trebui sa folosesc 2 pointers
#include <bits/stdc++.h>
#define MAXN 100

using namespace std;

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

int v[MAXN + 1];
struct elem{
    int x, y, z, s;
};
vector <elem> g;
unordered_map <int, elem> frecv;


vector <elem> gen(int n){
    int i, j, k, s;
    vector <elem> rez;

    for(i = 1; i <= n; i++){
        for(j = 1; j <= n; j++){
            for(k = 1; k <= n; k++){
                s = v[i] + v[j] + v[k];
                rez.push_back({v[i], v[j], v[k], s});
                frecv[s]= {v[i], v[j], v[k], s};
            }
        }
    }
    return rez;
}


int main()
{
    int n, suma, i, ok;

    fin >> n >> suma;
    for(i = 1; i <= n; i++){
        fin >> v[i];
    }

    g = gen(n);

    i = ok = 0;
    while(i < g.size() && !ok){
        if(frecv[suma - g[i].s].s + g[i].s == suma){
            ok = 1;
        }
        i++;
    }
    i--;
    if(!ok){
        fout << "-1\n";
    }else{
        fout << g[i].x << " " << g[i].y << " " << g[i].z << " " << frecv[suma - g[i].s].x << " " << frecv[suma - g[i].s].y << " " << frecv[suma - g[i].s].z << "\n";
    }
    return 0;
}