Cod sursa(job #3130155)

Utilizator sara_ionescu21Ionescu Sara sara_ionescu21 Data 16 mai 2023 22:48:14
Problema Loto Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.33 kb
#include <iostream>
#include <fstream>
#include <unordered_map>
#include <vector>

using namespace std;

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

unordered_map<int, std::pair<int, vector<int>>> map;
vector<int> v;

int s = 0, n;

int ok = 0;

int main()
{

    fin >> n >> s;

    v.resize(n);

    for (int i = 0; i < n; i++) 
        fin >> v[i];

    for (int i = 0; i < n; i++)
        for (int j = i; j < n; j++)
            for (int k = j; k < n; k++) 
            {
                vector<int> temp;
                temp.push_back(v[i]);
                temp.push_back(v[j]);
                temp.push_back(v[k]);
                map[v[i] + v[j] + v[k]] = make_pair(s - (v[i] + v[j] + v[k]), temp);
            }

    for (int i = 0; i < n; i++)
        for (int j = i; j < n; j++)
            for (int k = j; k < n; k++) 
            {
                int sum = v[i] + v[j] + v[k];
                if (map.find(s - sum) != map.end() && sum == map[s - sum].first) {
                    vector<int> temp = map[s - sum].second;
                    fout << v[i] << " " << v[j] << " " << v[k] << " " << temp[0] << " " << temp[1] << " " << temp[2];
                    ok = 1;
                    return 0;
                }
            }

    if (!ok) 
        fout << -1;

    return 0;
}