Pagini recente » Cod sursa (job #44042) | Cod sursa (job #1665605) | Cod sursa (job #3229731) | Cod sursa (job #1029611) | Cod sursa (job #496898)
Cod sursa(job #496898)
#include <cstdio>
#include <algorithm>
using namespace std;
#define NMAX 105
struct sum {
int s, x, y, z;
} S[NMAX * NMAX * NMAX];
int V[NMAX], NS, n, i, j, k, x, y, z, v, p, u, mid;
int cmp (sum A, sum B) {
return A.s < B.s;
}
int main () {
freopen ("loto.in", "r", stdin);
freopen ("loto.out", "w", stdout);
scanf ("%d %d", &n, &v);
for (i = 1; i <= n; i++)
scanf ("%d", &V[i]);
for (i = 1; i <= n; i++)
for (j = i; j <= n; j++)
for (k = j; k <= n; k++) {
S[++NS].s = V[i] + V[j] + V[k];
S[NS].x = V[i], S[NS].y = V[j], S[NS].z = V[k];
}
sort (S + 1, S + NS + 1, cmp);
for (i = 1; i <= NS; i++) {
p = 1, u = NS;
while (p <= u) {
mid = (u - p) / 2 + p;
if (S[mid].s == v - S[i].s) {
x = S[mid].x, y = S[mid].y, z = S[mid].z;
break;
}
else if (S[mid].s > v - S[i].s)
u = mid - 1;
else
p = mid + 1;
}
if (x) break;
}
if (x)
printf ("%d %d %d %d %d %d", S[i].x, S[i].y, S[i].z, x, y, z);
else
printf ("-1");
return 0;
}