Cod sursa(job #2612418)

Utilizator Horia14Horia Banciu Horia14 Data 8 mai 2020 23:05:01
Problema Loto Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.24 kb
#include<fstream>
#include<unordered_map>
#include<vector>
#define MAX_N 100
using namespace std;

struct elem {
    int v1, v2, v3;
};

unordered_map<int, pair<bool, elem>> umap;
vector<int> v;
int n, S;

int main() {
    elem e;
    int x;
    bool ok;
    v.reserve(MAX_N + 1);
    ifstream fin("loto.in");
    ofstream fout("loto.out");
    fin >> n >> S;
    for(int i = 0; i < n; ++i) {
        fin >> x;
        v.push_back(x);
    }

    for(int i = 0; i < n; ++i)
        for(int j = 0; j < n; ++j)
            for(int k = 0; k < n; ++k) {
                e.v1 = v[i];
                e.v2 = v[j];
                e.v3 = v[k];
                umap[v[i] + v[j] + v[k]] = make_pair(true, e);
            }

    ok = false;
    for(int i = 0; i < n && !ok; ++i)
        for(int j = 0; j < n && !ok; ++j)
            for(int k = 0; k < n && !ok; ++k) {
                x = S - (v[i] + v[j] + v[k]);
                if(umap[x].first) {
                    ok = true;
                    fout << v[i] << " " << v[j] << " " << v[k] << " ";
                    e = umap[x].second;
                    fout << e.v1 << " " << e.v2 << " " << e.v3 << "\n";
                }
            }

    if(!ok)
        fout << "-1";

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