Pagini recente » Cod sursa (job #411981) | Cod sursa (job #1240767) | Cod sursa (job #2664945) | Cod sursa (job #156797) | Cod sursa (job #1277709)
#include<stdio.h>
#include<vector>
#include<algorithm>
using namespace std;
int i,j,s,n,x[101],l1,l2,m,k,ok,nr;
struct str
{
int sum,a,b,c;
};
str v[100*100*100+3];
bool sortare(str elem1 , str elem2)
{
return elem1.sum>elem2.sum;
}
int main()
{
freopen("loto.in","r",stdin);
freopen("loto.out","w",stdout);
scanf("%d%d",&n,&s);
for(i=1;i<=n;i++)
{
scanf("%d",&x[i]);
}
for(i=1;i<=n;i++)
for(j=i;j<=n;j++)
for(k=j;k<=n;k++)
{
nr++;
v[nr].sum=x[i]+x[j]+x[k];
v[nr].a=x[i];
v[nr].b=x[j];
v[nr].c=x[k];
}
sort(v+1,v+1+nr,sortare);
for(i=1;i<=nr;i++)
{
l1=1;
l2=nr;
int caut=s-v[i].sum;
ok=0;
while(l1<=l2&&ok==0)
{
m=(l1+l2)/2;
if(v[m].sum==caut)
ok=m;
else
if(v[m].sum>caut)
l2=m-1;
else
l1=m+1;
}
if(ok!=0)
{
printf("%d %d %d %d %d %d",v[i].a,v[i].b,v[i].c,v[m].a,v[m].b,v[m].c);
return 0;
}
}
printf("-1");
return 0;
}