Pagini recente » Cod sursa (job #497663) | Cod sursa (job #2577429) | Clasament luca_oji | Cod sursa (job #551204) | Cod sursa (job #445205)
Cod sursa(job #445205)
#include<stdio.h>
#include<algorithm>
using namespace std;
long n,s,a[101],v[1000002];
void citire()
{
freopen("loto.in","r",stdin);
scanf("%ld%ld",&n,&s);
int i,j,k;
for(i=1;i<=n;i++)
scanf("%ld",&a[i]);
v[0]=0;
for(i=1;i<=n;i++)
for(j=i;j<=n;j++)
for(k=j;k<=n;k++)
v[++v[0]]=a[i]+a[j]+a[k];
}
int main()
{
long dr,st,m,i,ss,p,q;
citire();
sort(v+1,v+1+v[0]);
freopen("loto.out","w",stdout);
for(i=1;i<=n;i++)
for(q=i;q<=n;q++)
for(p=q;p<=n;p++)
{
ss=s-a[i]-a[q]-a[p];
st=1;dr=v[0];
while(st<dr)
{
m=(st+dr)/2;
if(v[m]==ss)
{
printf("%ld %ld %ld ",a[i],a[q],a[p]);
long j,k,l;
for(j=1;j<=n;j++)
for(k=j;k<=n;k++)
for(l=k;l<=n;l++)
{
if(a[l]+a[k]+a[j]==ss)
{printf("%ld %ld %ld\n",a[j],a[k],a[l]);
return 0;}
}
}
if(v[m]<ss)
st=m+1;
else
dr=m;
}
}
printf("-1\n");
return 0;
}