Cod sursa(job #2892177)

Utilizator Tudose_StefanTudose Alexandru Stefan Tudose_Stefan Data 21 aprilie 2022 00:23:21
Problema Loto Scor 95
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.47 kb
#include <fstream>
#include <unordered_map>
#include <vector>
#include <algorithm>

using namespace std;

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

unordered_map <int, pair<int, int>> sume;
vector <int> rez(6);
int nrBile, sum, i, j, k, sumacurenta, elem1, elem2, bile[101];
pair <int, int> haide;

int main()
{
    fin >> nrBile >> sum;
    for (i = 0; i < nrBile; i++)
        fin >> bile[i];
    for (i = 0; i< nrBile; i++)
        for (j = i; j < nrBile; j++)
        {
            haide = make_pair(bile[i], bile[j]);
            for (k = j; k < nrBile; k++)
                sume[bile[i]+bile[j]+bile[k]] = haide;
        }
    for (i = 0; i< nrBile; i++)
        for (j = i; j < nrBile; j++)
            for (k = j; k < nrBile; k++)
                if (sume.count(sum-bile[i]-bile[j]-bile[k]))
                {
                    sumacurenta = sum-bile[i]-bile[j]-bile[k];
                    elem1 = sume[sumacurenta].first;
                    elem2 = sume[sumacurenta].second;
                    rez[0] = bile[i];
                    rez[1] = bile[j];
                    rez[2] = bile[k];
                    rez[3] = elem1;
                    rez[4] = elem2;
                    rez[5] = sumacurenta - elem1-elem2;
                    sort(rez.begin(), rez.end());
                    for (auto m: rez )
                        fout << m << ' ';
                    return 0;
                }
    fout << -1;
    return 0;
}