Cod sursa(job #2840002)

Utilizator RobertAcAcatrinei Robert-Marian RobertAc Data 26 ianuarie 2022 21:38:56
Problema Loto Scor 95
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.12 kb
#include <bits/stdc++.h>

using namespace std;

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

struct elem{
    int v[3];
    elem(int v1,int v2,int v3){
        v[0]=v1;
        v[1]=v2;
        v[2]=v3;
    }
    elem(){
        v[0]=v[1]=v[2]=0;
    }
};

unordered_map<int,elem> m;
unordered_map<int,bool> viz;

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

    for(int i=0;i<n;i++){
        for(int j=i;j<n;j++){
            for(int k=j;k<n;k++){
                int sum=v[i]+v[j]+v[k];
                if(viz[sum])continue;
                m[sum]=elem(v[i],v[j],v[k]);
                viz[sum]=1;
                if(viz[S-sum]){
                    int res[6];
                    res[0]=m[sum].v[0];
                    res[1]=m[sum].v[1];
                    res[2]=m[sum].v[2];
                    res[3]=m[S-sum].v[0];
                    res[4]=m[S-sum].v[1];
                    res[5]=m[S-sum].v[2];
                    sort(res,res+6);
                    for(int i=0;i<6;i++)out<<res[i]<<' ';
                    return 0;
                }
            }
        }
    }
    out<<-1;
}