Pagini recente » Cod sursa (job #51805) | Cod sursa (job #3159506) | Cod sursa (job #3003637) | Cod sursa (job #2369389) | Cod sursa (job #2669623)
#include <bits/stdc++.h>
using namespace std;
int n, s, cnt, a[105];
struct loto{
int s, x1, x2, x3;
}suma[105];
bool comp(loto w, loto z)
{
return w.s > z.s;
}
int main() {
freopen("loto.in", "r", stdin);
freopen("loto.out", "w", stdout);
scanf("%d%d", &n, &s);
for (int i=1;i<=n;i++){
scanf("%d", &a[i]);
}
for (int i=1;i<=n;i++){
for (int j=i;j<=n;j++){
for (int k=j;k<=n;k++){
suma[++cnt].s = a[i] + a[j] + a[k];
suma[cnt].x1 = a[i];
suma[cnt].x2 = a[j];
suma[cnt].x3 = a[k];
}
}
}
sort(suma+1, suma+cnt+1, comp);
for (int i=1;i<=cnt;i++){
int s1 = s - suma[i].s;
int st = 1, dr = cnt;
while(dr - st > 1){
int mijloc = (st+dr)/2;
if (suma[mijloc].s == s1){
printf("%d %d %d %d %d %d\n", suma[i].x1, suma[i].x2, suma[i].x3, suma[mijloc].x1, suma[mijloc].x2, suma[mijloc].x3);
return 0;
}
if (suma[mijloc].s > s1){
dr = mijloc-1;
}else{
st = mijloc+1;
}
}
}
printf("%d\n", -1);
return 0;
}