Pagini recente » Cod sursa (job #906249) | Cod sursa (job #986618) | Cod sursa (job #2093568) | Cod sursa (job #2082776) | Cod sursa (job #1180486)
#include<cstdio>
#include<algorithm>
using namespace std;
int n,s,sum[1000001],v[101],cate,e1[1000001],e2[1000001],e3[1000001],cc;
int caut(int x){
int l1,l2;
l1=1;
l2=cate;
while(l1<=l2){
if(sum[(l1+l2)/2]==x)
return ((l1+l2)/2);
if(sum[(l1+l2)/2]>x)
l2=(l1+l2)/2-1;
else
l1=(l1+l2)/2+1;
}
return -1;
}
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++;
sum[cate]=v[i]+v[j]+v[k];
e1[cate]=v[i];
e2[cate]=v[j];
e3[cate]=v[k];
}
sort(sum+1,sum+cate+1);
pp=0;
for(i=1;i<=cate&&pp==0;i++){
cc=caut(s-sum[i]);
if(cc!=-1){
pp=1;
printf("%d %d %d %d %d %d",e1[i],e2[i],e3[i],e1[cc],e2[cc],e3[cc]);
}
}
if(pp==0)
printf("-1");
return 0;
}