Pagini recente » Cod sursa (job #3292855) | Cod sursa (job #702712) | Cod sursa (job #1107119) | Cod sursa (job #2433132) | Cod sursa (job #1026459)
#include<stdio.h>
#include<algorithm>
using namespace std;
struct sp
{
unsigned a,b,c,d;
}v[1000005];
unsigned v2[105];
bool cmp(sp w, sp e)
{
return w.d<e.d;
}
int main()
{
freopen("loto.in","r",stdin);
freopen("loto.out","w",stdout);
unsigned n,s,i,j,q,m=0,st,dr,mi;
scanf("%u%u",&n,&s);
for(i=1;i<=n;i++)
{
scanf("%u",&v2[i]);
for(j=i;j>0;j--)
for(q=j;q>0;q--)
{
m++;
v[m].d=v2[i]+v2[j]+v2[q];
v[m].a=i;
v[m].b=j;
v[m].c=q;
}
}
sort(v+1,v+m+1,cmp);
for(i=1;i<=m;i++)
{
q=s-v[i].d;
st=i;
dr=m;
while(st<=dr)
{
mi=(st+dr)/2;
if(v[mi].d==q)
break;
if(v[mi].d>q)
dr=mi-1;
else
st=mi+1;
}
if(st<=dr)
{
v2[1]=v[i].a;v2[2]=v[i].b;v2[3]=v[i].c;v2[4]=v[mi].a;v2[5]=v[mi].b;v2[6]=v[mi].c;
sort(v2+1,v2+7);
printf("%u %u %u %u %u %u\n",v2[1],v2[2],v2[3],v2[4],v2[5],v2[6]);
break;
}
}
if(i>m)
printf("-1\n");
return 0;
}