Pagini recente » Cod sursa (job #1699279) | Ciorna | Cod sursa (job #615699) | Cod sursa (job #204380) | Cod sursa (job #1997487)
#include <cstdio>
#include <bitset>
#include <algorithm>
using namespace std;
int j,t,mid,p,u,aux,n,i,sum,s,nr,a[102],sol[8];
struct elem{
int s,a,b,c;
}su[1000002];
bool cmp(elem x,elem y){
return x.s<y.s;
}
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", &a[i]);
for(i=1;i<=n;++i){
for(j=i;j<=n;++j){
for(t=j;t<=n;++t){
su[++nr].s=a[i]+a[j]+a[t];
su[nr].a=a[i];
su[nr].b=a[j];
su[nr].c=a[t];
}
}
}
sort(su+1,su+nr+1,cmp);
for(i=1;i<=n;++i){
for(j=i;j<=n;++j){
for(t=j;t<=n;++t){
p=1;u=nr;
aux=s-a[i]-a[j]-a[t];
while(p<=u){
mid=(p+u)/2;
if(su[mid].s<aux) p=mid+1;
else if(su[mid].s>aux) u=mid-1;
else{
sol[1]=su[mid].a;
sol[2]=su[mid].b;
sol[3]=su[mid].c;
sol[4]=a[i];
sol[5]=a[j];
sol[6]=a[t];
sort(sol+1,sol+7);
for(i=1;i<=6;++i)
printf("%d ",sol[i]);
return 0;
}
}
}
}
}printf("-1");
return 0;
}