Pagini recente » Cod sursa (job #505182) | Borderou de evaluare (job #2758124) | Borderou de evaluare (job #2759663) | Borderou de evaluare (job #2267547) | Cod sursa (job #2622687)
#include <iostream>
#include <fstream>
#include <unordered_map>
#include <vector>
using namespace std;
ifstream in("loto.in");
ofstream 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;
}