Cod sursa(job #2911216)

Utilizator ArseniuVictorStefanArseniu Victor Stefan ArseniuVictorStefan Data 27 iunie 2022 16:33:47
Problema Loto Scor 75
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.1 kb
#include <fstream>
#include <unordered_map>
#include <vector>
#include <array>

using namespace std;

ifstream cin("loto.in");
ofstream cout("loto.out");

int main()
{
    int n, sum;
    cin >> n >> sum;
    vector<int> a(n);
    for(int i = 0; i < n; i++)
        cin >> a[i];

    unordered_map<int, array<int, 3>> sums;
    for(int i = 0; i < n; i++)
        for(int j = 0; j < n; j++)
            for(int k = 0; k < n; k++)
            {
                array<int, 3> v;
                v[0] = a[i]; v[1] = a[j]; v[2] = a[k];
                sums[a[i] + a[j] + a[k]] = v;
            }
    for(unordered_map<int, array<int, 3>>::const_iterator it  = sums.cbegin(); it != sums.cend(); it++)
    {
        const int& s = it->first;
        const array<int, 3>& v = it->second;
        if(sums.find(sum - s) != sums.end())
        {
            for(int i = 0; i < 3; i++)
                cout << v[i] << ' ';
            for(int i = 0; i < 3; i++)
                cout << sums[sum - s][i] << ' ';
            cout << '\n';
            return 0;
        }
    }
    cout << "-1\n";
}