Pagini recente » Cod sursa (job #1747990) | Cod sursa (job #1406683) | Cod sursa (job #1283925) | Cod sursa (job #802960) | Cod sursa (job #1180524)
#include<cstdio>
#include<algorithm>
using namespace std;
int n,s,v[101],cate,cc;
struct suu{int sum,e1,e2,e3;};
suu ss[1000001];
int caut(int x){
int l1,l2;
l1=1;
l2=cate;
while(l1<=l2){
if(ss[(l1+l2)/2].sum==x)
return ((l1+l2)/2);
if(ss[(l1+l2)/2].sum>x)
l2=(l1+l2)/2-1;
else
l1=(l1+l2)/2+1;
}
return -1;
}
bool sortez(const suu A,const suu B){
return A.sum<B.sum;
}
int main(){
int i,j,k,pp;
freopen("loto.in","r",stdin);
freopen("loto.out","w",stdout);
scanf("%d%d",&n,&s);
for(i=1;i<=n;i++)
scanf("%d",&v[i]);
cate=0;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
for(k=1;k<=n;k++){
cate++;
ss[cate].sum=v[i]+v[j]+v[k];
ss[cate].e1=v[i];
ss[cate].e2=v[j];
ss[cate].e3=v[k];
}
sort(ss+1,ss+cate+1,sortez);
pp=0;
for(i=1;i<=cate&&pp==0;i++){
cc=caut(s-ss[i].sum);
if(cc!=-1){
pp=1;
printf("%d %d %d %d %d %d",ss[i].e1,ss[i].e2,ss[i].e3,ss[cc].e1,ss[cc].e2,ss[cc].e3);
}
}
if(pp==0)
printf("-1");
return 0;
}