Pagini recente » Cod sursa (job #297196) | Cod sursa (job #2819927) | Cod sursa (job #743894) | Cod sursa (job #282114) | Cod sursa (job #3197339)
#include <iostream>
#include <map>
#include <algorithm>
using namespace std;
const int MAX = 100;
int v[MAX + 3];
struct trei {
int x, y, z;
};
map<int, trei>m1;
int N, S;
int main() {
freopen("loto.in", "r", stdin);
freopen("loto.out", "w", stdout);
cin.tie(0);
ios_base::sync_with_stdio(false);
cout.tie(0);
cin >> N >> S;
for (int i = 1; i <= N; i++) {
cin >> v[i];
}
for (int i = 1; i <= N; i++) {
for (int j = i; j <= N; j++) {
for (int l = j; l <= N; l++) {
if (v[i] + v[j] + v[l] <= S)
m1[v[i] + v[j] + v[l]] = { v[i], v[j], v[l] };
}
}
}
sort(v + 1, v + N + 1);
for (int i = 1; i <= N; i++) {
bool da1 = 1;
for (int j = i; j <= N && da1; j++) {
if (v[i] + v[j] > S) da1 = 0;
bool da = 1;
for (int l = j; l <= N && da && da1; l++) {
int sum = S - (v[i] + v[j] + v[l]);
if (sum < 0) da = 0;
trei aux = m1[sum];
if (aux.x + aux.y + aux.z == sum) {
cout << v[i] << ' ' << v[j] << ' ' << v[l] << ' ' <<
aux.x << ' ' << aux.y << ' ' << aux.z;
return 0;
}
}
}
}
cout << -1;
}