Cod sursa(job #2894012)

Utilizator KataIsache Catalina Kata Data 27 aprilie 2022 01:02:30
Problema Loto Scor 95
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.3 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 rezolvare(){
    int suma;
    for(int i=0; i<n; i++)
        for(int j=0; j<n; j++)
            for(int k=0; k<n; k++){
                suma=v[i]+v[j]+v[k];
                if(suma<s){
                    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;
                    }
                    if(suma*2==s)
                    {
                        fout<<v[i]<<" "<<v[j]<<" "<<v[k]<<" "<<v[i]<<" "<<v[j]<<" "<<v[k];
                        return;
                    }
                    triplet.first=i;
                    triplet.second.first=j;
                    triplet.second.second=k;
                    sume[suma]=triplet;
                }

            }
    fout<<-1;
    return;
}

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