Pagini recente » Cod sursa (job #1133848) | Cod sursa (job #1796082) | Cod sursa (job #898675) | Cod sursa (job #3130342) | Cod sursa (job #2035128)
#include <cstdio>
#include <map>
const int MAX_N = 100;
int v[5 + MAX_N];
int main() {
freopen("loto.in", "r", stdin);
freopen("loto.out", "w", stdout);
int N, S;
scanf("%d%d", &N, &S);
for (int i = 1; i <= N; i++) {
int x;
scanf("%d", &x);
v[i] = x;
}
std::map<int, int> sePoate;
for (int i = 1; i <= N; i++) {
for (int j = 1; j <= N; j++) {
for (int k = 1; k <= N; k++) {
int s = v[i] + v[j] + v[k];
sePoate[s] = 1;
}
}
}
int x1 = 0, x2 = 0, x3 = 0;
int s1 = 0;
bool ok = false;
for (int i = 1; i <= N; i++) {
for (int j = 1; j <= N; j++) {
for (int k = 1; k <= N; k++) {
int s = v[i] + v[j] + v[k];
if (sePoate[S - s]) {
x1 = v[i];
x2 = v[j];
x3 = v[k];
s1 = S - s;
ok = true;
}
}
}
}
if (!ok) {
printf("-1\n");
return 0;
}
for (int i = 1; i <= N; i++) {
for (int j = 1; j <= N; j++) {
for (int k = 1; j <= N; k++) {
int s = v[i] + v[j] + v[k];
if (s == s1) {
printf("%d %d %d %d %d %d\n", x1, x2, x3, v[i], v[j], v[k]);
return 0;
}
}
}
}
return 0;
}