Cod sursa(job #2894043)

Utilizator KataIsache Catalina Kata Data 27 aprilie 2022 01:44:20
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 fin("loto.in");
ofstream fout("loto.out");

int v[101],n,s;
pair <int, pair <int, int>> triplet;

unordered_map <int, pair <int, pair <int, int>> > sume;

void citire(){

    fin>>n>>s;
    for( int i=0; i<n; i++)
        fin>>v[i];
}

bool rezolvare(){
    for(int i=0; i<n; i++)
        for(int j=i; j<n; j++)
            for(int k=j; k<n; k++){
                int suma=v[i]+v[j]+v[k];
                if(suma<s){
                    triplet={i,{j,k}};
                    sume[suma]=triplet;
                }

                if(sume.find(s-suma)!= sume.end())
                {
                    fout<<v[i]<<" "<<v[j]<<" "<<v[k]<<" ";
                    triplet=sume[s-suma];
                    fout<<v[triplet.first]<<" "<<v[triplet.second.first]<<" "<<v[triplet.second.second];
                    return 1;
                }
            }
    return 0;
}

int main()
{
    citire();
    if(!rezolvare())
        fout<<-1;
    return 0;
}