Pagini recente » Cod sursa (job #54091) | Cod sursa (job #2738558) | Cod sursa (job #1326343) | Cod sursa (job #2939613) | Cod sursa (job #1725053)
#include <bits/stdc++.h>
using namespace std;
int n,s,i,v[110],in,sf,mid,r,val,x[1000010],j,k,ans,p,S;
bool ok,OK1,OK2;
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",&v[i]);
for(i=1; i<=n; ++i)
{
s=v[i];
for(j=1; j<=n; ++j)
{
s=v[i]+v[j];
for(k=1; k<=n; ++k)
{
s=v[i]+v[j];
s+=v[k];
x[++p]=s;
}
}
}
sort(x+1,x+p+1);
for(i=1; i<=p; ++i)
{
val=S-x[i];
in=1;
sf=p;
while(in<=sf)
{
mid=(in+sf)/2;
if(x[mid]==val)
{
ans=x[i];
ok=true;
in=sf+1;
i=p+1;
}
else if(val<x[mid])sf=mid-1;
else in=mid+1;
}
}
if(!ok)printf("%d\n",-1);
else
{
for(i=1; i<=n; ++i)
{
s=v[i];
for(j=1; j<=n; ++j)
{
s=v[i]+v[j];
for(k=1; k<=n; ++k)
{
s=v[i]+v[j];
s+=v[k];
if(s==val&&!OK1)
{
printf("%d %d %d ",v[i],v[j],v[k]);
OK1=true;
}
if(s==ans&&!OK2)
{
printf("%d %d %d ",v[i],v[j],v[k]);
OK2=true;
}
if(OK1&&OK2)
{
i=n+1;
j=n+1;
k=n+1;
}
}
}
}
}
return 0;
}