Cod sursa(job #3131852)

Utilizator AndreiKatsukiAndrei Dogarel AndreiKatsuki Data 21 mai 2023 20:04:14
Problema Loto Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.03 kb
#include <bits/stdc++.h>

using namespace std;

ifstream f("loto.in");
ofstream g("loto.out");

const int NMAX = 105;
int n, S, a[NMAX];
map<long long, vector<long long>> mp;

int main(){
    f >> n >> S;
    for(int i = 1; i <= n; ++i){
        f >> a[i];
    }
    for(int i = 1; i <= n; ++i){
        for(int j = i; j <= n; ++j){
            for(int k = j; k <= n; ++k){
                mp[a[i] + a[j] + a[k]] = {a[i], a[j], a[k]};
            }
        }
    }
    bool ok = false;
    for(int i = 1; i <= n && !ok; ++i){
        for(int j = i; j <= n && !ok; ++j){
            for(int k = j; k <= n && !ok; ++k){
                long long s = a[i] + a[j] + a[k];
                if(mp.find(S - s) != mp.end()){
                    vector<long long> sol = mp[S - s];
                    g << sol[0] << " " << sol[1] << " " << sol[2] << " " << a[i] << " " << a[j] << " " << a[k];
                    ok = true;
                }
            }
        }
    }
    if(!ok){
        g << -1;
    }
    return 0;
}