Pagini recente » Cod sursa (job #1964972) | Cod sursa (job #1212470) | Cod sursa (job #1513871) | Cod sursa (job #3199732) | Cod sursa (job #1282177)
#include<cstdio>
#include<algorithm>
#include<iostream>
using namespace std;
int a[105],n,s,contor;
struct Suma{int s,x1,x2,x3;};
Suma sum[1000005];
inline bool Ordonare(const Suma A,const Suma B)
{
return A.s<B.s;
}
int main()
{
int i,j,k;
int st,dr,m,x;
freopen("loto.in","r",stdin);
scanf("%d %d",&n,&s);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n;i++)
for(j=i;j<n;j++)
for(k=j;k<n;k++)
{
sum[contor].s=a[i]+a[j]+a[k];
sum[contor].x1=a[i];
sum[contor].x2=a[j];
sum[contor].x3=a[k];
contor++;
}
sort(sum,sum+contor,Ordonare);
freopen("loto.out","w",stdout);
for(i=0;i<contor;i++)
{
st=0;
dr=contor-1;
x=s-sum[i].s;
while(st<=dr)
{
m=((st+dr)>>1);
if(sum[m].s==x)
{
printf("%d %d %d ",sum[i].x1,sum[i].x2,sum[i].x3);
printf("%d %d %d\n",sum[m].x1,sum[m].x2,sum[m].x3);
return 0;
}
else
if(sum[m].s>x)
dr=m-1;
else
st=m+1;
}
}
printf("-1\n");
return 0;
}