Cod sursa(job #2892429)

Utilizator andlftLefter Andrei andlft Data 22 aprilie 2022 08:53:47
Problema Loto Scor 65
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.32 kb
#include <iostream>
#include <fstream>
#include <unordered_map>
#include <vector>
#include <set>

using namespace std;


int main()
{
    unordered_map<int, vector<int>> sume;

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

    vector <int> numere;

    int n, s, aux;

    fin>> n >> s;

    for(int i = 0; i < n; i++)
    {
        fin>>aux;
        numere.push_back(aux);
    }
    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++)
            {   int suma = numere[i]+numere[j]+numere[k];
                sume[suma].push_back(numere[i]);
                sume[suma].push_back(numere[j]);
                sume[suma].push_back(numere[k]);
                unq_sume.insert(suma);
            }
        }
    }

    unordered_map<int, vector<int>>::iterator itr;

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

    fout<<-1;

    return 0;
}