Pagini recente » Cod sursa (job #907176) | Cod sursa (job #3161176) | Cod sursa (job #3135592) | Rating BiancaChiorean (MorcovelPpufu) | Cod sursa (job #2396545)
#include <bits/stdc++.h>
using namespace std;
typedef unsigned long long ull;
typedef signed long long ll;
typedef unsigned int uint;
typedef unsigned short ushort;
typedef unsigned char uchar;
const int nmax = 101;
int v[nmax];
unordered_map<ll, bool> M;
int main() {
freopen("loto.in", "r", stdin);
freopen("loto.out", "w", stdout);
int n, S;
scanf("%d %d", &n, &S);
for (int i = 0; i < n; i++) scanf("%d", &v[i]);
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
for (int k = 0; k < n; k++) {
M[v[i] + v[j] + v[k]] = true;
}
}
}
ll to_find = -1;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
for (int k = 0; k < n; k++) {
if (M[S - (v[i] + v[j] + v[k])]) {
to_find = S - (v[i] + v[j] + v[k]);
cout << v[i] << " " << v[j] << " " << v[k] << " ";
i = j = k = n + 1;
break;
}
}
}
}
if (to_find == -1) {
cout << -1 << "\n";
return 0;
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
for (int k = 0; k < n; k++) {
if(v[i] + v[j] + v[k] == to_find) {
cout << v[i] << " " << v[j] << " " << v[k] << "\n";
i = j = k = n + 1;
break;
}
}
}
}
return 0;
}