Cod sursa(job #2892434)

Utilizator andlftLefter Andrei andlft Data 22 aprilie 2022 09:26:00
Problema Loto Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.32 kb
#include <iostream>
#include <fstream>
#include <unordered_map>
#include <tuple>
#include <unordered_set>

using namespace std;

    unordered_map<int, tuple<int, int, int>> sume;

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

    int numere[103];

    int n, s;
    int suma;



int main()
{
    fin>> n >> s;

    for(int i = 0; i < n; i++)
    {
        fin>>numere[i];
    }
    unordered_set <int> unq_sume;

    for(int i = 0; i < n; i++)
    {
        for(int j = i; j < n; j++)
        {
            for(int k = j; k < n; k++)
            {   suma = numere[i]+numere[j]+numere[k];
                sume[suma] = make_tuple(numere[i], numere[j], numere[k]);
                unq_sume.insert(suma);
            }
        }
    }

    unordered_set<int>::iterator it;
    unordered_map<int, tuple<int, int, int>>::iterator itr;

    for (it = unq_sume.begin(); it != unq_sume.end(); it++)
    {
        itr = sume.find(s-*it);
        if(itr == sume.end())
        {
            continue;
        }
        else
        {
            fout<<get<0>(sume[*it])<<" "<<get<1>(sume[*it])<<" "<<get<2>(sume[*it])<<" "
            <<get<0>(sume[s-*it])<<" "<<get<1>(sume[s-*it])<<" "<<get<2>(sume[s-*it]);
            return 0;
        }
    }

    fout<<-1;

    return 0;
}