Cod sursa(job #2622685)

Utilizator MicuMicuda Andrei Micu Data 1 iunie 2020 17:54:17
Problema Loto Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <iostream>
#include <fstream>
#include <unordered_map>
#include <vector>

using namespace std;

ifstream in("loto.in");
ifstream out("loto.out");

unordered_map<int, vector<int>> map;
int v[100];

int main() {
	int n, s;
	in >> n >> s;
	for (int i = 0; i < n; i++) {
		in >> v[i];
	}

	for (int i = 0; i < n; i++) {
		for (int j = 0; j < n; j++) {
			for (int k = 0; k < n; k++) {
				if (map[v[i] + v[j] + v[k]].empty()) {
					map[v[i] + v[j] + v[k]].push_back(v[i]);
					map[v[i] + v[j] + v[k]].push_back(v[j]);
					map[v[i] + v[j] + v[k]].push_back(v[k]);
				}
			}
		}
	}

	bool ok = 0;
	for (auto val : map) {
		if (!val.second.empty() && !map[s - val.first].empty()) {
			for (int i = 0; i < val.second.size(); i++) {
				out << val.second[i] << ' ';
			}
			for (int i = 0; i < map[s-val.first].size(); i++) {
				out << map[s - val.first][i] << ' ';
			}
			ok = 1;
			break;
		}
	}
	if (!ok) out << -1;
	return 0;
}