Cod sursa(job #2745536)

Utilizator bananamandaoneTudor Cosmin Oanea bananamandaone Data 26 aprilie 2021 17:48:20
Problema Loto Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.24 kb
#include <bits/stdc++.h>

using namespace std;

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

unordered_map<int, pair<int, int> >h;
vector<int>a;
int n, s;

void Citire()
{
    int i, x;
    fin >> n >> s;
    for(i = 1; i <= n; i++)
    {
        fin >> x;
        a.push_back(x);
    }
}

void Rezolvare()
{
    int i, j, k, suma;
    // toate sumele de cate 3 elemente
    for(i = 0; i < (int)a.size(); i++)
        for(j = i; j < (int)a.size(); j++)
            for(k = j; k < (int)a.size(); k++)
            {
                suma = a[i] + a[j] + a[k];
                h[suma] = {a[i], a[j]};
            }

    for(auto i : h)
    {
        // caut (s - suma din cele 3 elemente)
        auto poz = h.find(s - i.first);

        // daca gasesc afisez solutia
        if(poz != h.end())
        {
            fout << i.second.first << " " << i.second.second << " " << i.first - i.second.first - i.second.second << " "
            << poz->second.first << " " << poz->second.second << " " << s - i.first - poz->second.first - poz->second.second << "\n";
            return;
        }
    }
    fout << -1;
}

int main()
{
    Citire();
    Rezolvare();

    fin.close();
    fout.close();
    return 0;
}