Pagini recente » Cod sursa (job #90813) | Cod sursa (job #737947) | Cod sursa (job #1113201) | Cod sursa (job #1254188) | Cod sursa (job #458165)
Cod sursa(job #458165)
#include<cstdio>
#include<algorithm>
using namespace std;
int s[1000001],a[102],r[1000001][4],st,dr,m,caut,ok,k,j,i,ka=0,sum,n;
int main ()
{
freopen("loto.in","r",stdin);
freopen("loto.out","w",stdout);
scanf("%d%d",&n,&sum);
ok=0;
for (i=1; i<=n; i++)
scanf("%d",&a[i]);
ka=0;
for (i=1; i<=n; i++)
if (a[i]<sum)
for (j=1; j<=n; j++)
if (a[i]+a[j]<sum)
for (k=1; k<=n; k++)
if (a[i]+a[j]+a[k]<sum)
{
s[++ka]=a[i]+a[j]+a[k];
r[ka][1]=a[i];
r[ka][2]=a[j];
r[ka][3]=a[k];
}
sort(s+1,s+ka+1);
for (i=1; i<=ka; i++)
{
caut=sum-s[i];
st=1;
dr=n;
while (st<=dr)
{
m=(st+dr)/2;
if (s[m]==caut)
{
printf("%d %d %d %d %d %d",r[i][1],r[i][2],r[i][3],r[m][1],r[m][2],r[m][3]);
ok=1; i=ka+1;
break;
}
else if (caut>s[m]) st=m+1;
else dr=m-1;
}
}
if (!ok) printf("-1");
return 0;
}