Pagini recente » Cod sursa (job #3272640) | Cod sursa (job #3189131) | Cod sursa (job #753404) | Cod sursa (job #3288633) | Cod sursa (job #3295003)
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
int N;
long long S;
vector<int> v;
vector<pair<long long, vector<int>>> sumA, sumB;
void generate3(const vector<int>& v, vector<pair<long long, vector<int>>>& sums) {
for (int i = 0; i < N; ++i)
for (int j = 0; j < N; ++j)
for (int k = 0; k < N; ++k) {
long long s = 1LL * v[i] + v[j] + v[k];
sums.push_back({s, {v[i], v[j], v[k]}});
}
}
int main() {
fin >> N >> S;
v.resize(N);
for (int i = 0; i < N; ++i)
fin >> v[i];
generate3(v, sumA);
generate3(v, sumB);
sort(sumB.begin(), sumB.end());
for (auto& a : sumA) {
long long need = S - a.first;
auto it = lower_bound(sumB.begin(), sumB.end(), make_pair(need, vector<int>()));
if (it != sumB.end() && it->first == need) {
for (int x : a.second)
fout << x << " ";
for (int x : it->second)
fout << x << " ";
fout << "\n";
return 0;
}
}
fout << -1 << "\n";
return 0;
}