Cod sursa(job #2911219)

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

using namespace std;

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

int n, sum, a[100], nsums;
pair<int, array<int, 3>> vsums[1000000];

int main()
{
    cin >> n >> sum;
    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 = i; j < n; j++)
            for(int k = j; k < n; k++)
            {
                array<int, 3> v;
                v[0] = a[i]; v[1] = a[j]; v[2] = a[k];
                int s = a[i] + a[j] + a[k];
                if(sums.find(s) == sums.end())
                {
                    sums[s] = v;
                    vsums[nsums++] = {s, v};
                }
            }
    for(int i = 0; i < nsums; i++)
        if(sums.find(sum - vsums[i].first) != sums.end())
        {
            for(int j = 0; j < 3; j++)
                cout << vsums[i].second[j] << ' ';
            for(int j = 0; j < 3; j++)
                cout << sums[sum - vsums[i].first][j] << ' ';
            cout << '\n';
            return 0;
        }
    cout << "-1\n";
    return 0;
}