Cod sursa(job #2892435)

Utilizator andlftLefter Andrei andlft Data 22 aprilie 2022 09:40:07
Problema Loto Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.42 kb
#include <iostream>
#include <fstream>
#include <unordered_map>
#include <tuple>

using namespace std;


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

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

    int numere[103];

    int n, s;
    int suma;

    fin>> n >> s;

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

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

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

    for(int i = 0; i < n; i++)
    {
        for(int j = i; j < n; j++)
        {
            for(int k = j; k < n; k++)
            {
                itr = sume.find(s-(numere[i]+numere[j]+numere[k]));
                if(itr == sume.end())
                {
                    continue;
                }
                else
                {   int aux = numere[i]+numere[j]+numere[k];
                    fout<<get<0>(sume[aux])<<" "<<get<1>(sume[aux])<<" "<<get<2>(sume[aux])<<" "
                    <<get<0>(sume[s-aux])<<" "<<get<1>(sume[s-aux])<<" "<<get<2>(sume[s-aux]);
                    return 0;
                }
            }
        }
    }


    fout<<-1;

    return 0;
}