Pagini recente » Cod sursa (job #286358) | Cod sursa (job #335562) | Cod sursa (job #45994) | Cod sursa (job #846104) | Cod sursa (job #976655)
Cod sursa(job #976655)
#include<stdio.h>
#include<algorithm>
using namespace std;
typedef struct loto
{
int v,a1,a2,a3;
}loto;
int v[101];
loto b[1000002];
int cmp(loto x,loto y)
{
return x.v<y.v;
}
int main()
{
freopen("loto.in","r",stdin);
freopen("loto.out","w",stdout);
int n,s,i,j,k,nr=0,st,dr,m;
scanf("%d%d",&n,&s);
for(i=1;i<=n;++i)
scanf("%d",&v[i]);
for(i=1;i<=n;++i)
for(j=i;j<=n;++j)
for(k=j;k<=n;++k)
{
++nr;
b[nr].v=v[i]+v[j]+v[k];
b[nr].a1=v[i];
b[nr].a2=v[j];
b[nr].a3=v[k];
}
sort(b+1,b+1+n,cmp);
for(i=1;i<=n;++i)
{
st=1;dr=nr;
while(st<=dr)
{
m=(st+dr)/2;
if(b[m].v+b[i].v==s)
{
printf("%d %d %d %d %d %d\n",b[i].a1,b[i].a2,b[i].a3,b[m].a1,b[m].a2,b[m].a3);
return 0;
}
if(b[i].v+b[m].v<s)
st=m+1;
else
dr=m-1;
}
}
printf("-1\n");
return 0;
}