Pagini recente » Cod sursa (job #1977561) | Cod sursa (job #3156279) | Cod sursa (job #2690354) | Cod sursa (job #1908537) | Cod sursa (job #345951)
Cod sursa(job #345951)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
#define N_MAX 100;
int main() {
int x, n, sum, i, j, k, ok;
vector<int> v, s;
ifstream fin; ofstream fout;
fin.open("loto.in");
fout.open("loto.out");
fin >> n >> sum;
for (i = 0; i < n; i++) {
fin >> x;
v.push_back(x);
}
stable_sort(v.begin(), v.end());
for (i = n - 1; i >= 0; i--)
for (j = i; j >= 0; j--)
for (k = j; k >= 0; k--)
s.push_back(v[i] + v[j] + v[k]);
stable_sort(s.begin(), s.end());
ok = 0;
for (i = n - 1; i >= 0; i--) {
for (j = i; j >= 0; j--) {
for (k = j; k >= 0; k--) {
if (binary_search(s.begin(), s.end(), sum - v[i] - v[j] - v[k])) x = v[i] + v[j] + v[k], ok = 1;
if (ok) break;
}
if (ok) break;
}
if (ok) break;
}
if (!ok) fout << "-1\n";
else {
ok = 0;
for (i = n - 1; i >= 0; i--) {
for (j = i; j >= 0; j--) {
for (k = j; k >= 0; k--) {
if (v[i] + v[j] + v[k] == x) {fout << v[i] << " " << v[j] << " " << v[k] << " "; ok = 1; }
if (ok) break;
}
if (ok) break;
}
if (ok) break;
}
ok = 0;
ok = 0;
for (i = n - 1; i >= 0; i--) {
for (j = i; j >= 0; j--) {
for (k = j; k >= 0; k--) {
if (v[i] + v[j] + v[k] == sum - x) {fout << v[i] << " " << v[j] << " " << v[k] << " "; ok = 1; }
if (ok) break;
}
if (ok) break;
}
if (ok) break;
}
fout << "\n";
}
fout.close();
fin.close();
return 0;
}