Pagini recente » Cod sursa (job #2555438) | Cod sursa (job #2581877) | Cod sursa (job #892810) | Cod sursa (job #620101) | Cod sursa (job #2935418)
#include <bits/stdc++.h>
using namespace std;
struct elem {
int v[3], total;
elem(int x, int y, int z) {
v[0] = x;
v[1] = y;
v[2] = z;
total = x + y + z;
}
};
int main() {
ifstream fin("loto.in");
ofstream fout("loto.out");
int n, s;
fin >> n >> s;
vector<int> v(n);
for (int i = 0; i < n; ++i)
fin >> v[i];
vector<elem> mitm;
for (int i = 0; i < n; ++i)
for (int j = i; j < n; ++j)
for (int k = j; k < n; ++k)
mitm.push_back(elem(v[i], v[j], v[k]));
auto cmp = [](const elem& e1, const elem& e2) {
return e1.total < e2.total;
};
sort(mitm.begin(), mitm.end(), cmp);
int i = 0, j = mitm.size() - 1;
while (i < j) {
if (mitm[i].total + mitm[j].total == s) {
for (const elem& e : {mitm[i], mitm[j]})
for (int i = 0; i < 3; ++i)
fout << e.v[i] << ' ';
fout << '\n';
return 0;
} else if (mitm[i].total + mitm[j].total < s)
++i;
else
--j;
}
fout << "-1\n";
}