Pagini recente » Cod sursa (job #2686742) | Cod sursa (job #1718820) | Cod sursa (job #1260938) | Cod sursa (job #2743803) | Cod sursa (job #11514)
Cod sursa(job #11514)
#include<stdio.h>
#define dim 101
struct gigel
{
long x,y,z,s;
};
int main()
{
gigel v[dim*dim*dim];
long a[dim],n,l=0,s,i,j,k,gresit,st,dr,m;
freopen("loto.in","r",stdin);
freopen("loto.out","w",stdout);
scanf("%ld%ld", &n, &s);
for(i=1; i<=n; ++i)
scanf("%ld", &a[i]);
for(i=1; i<=n; ++i)
for(j=1; j<=n; ++j)
for(k=1; k<=n; ++k)
{
v[++l].x=a[i];
v[l].y=a[j];
v[l].z=a[k];
v[l].s=a[i]+a[j]+a[k];
}
for(i=1; i<=l; ++i)
for(j=i+1; j<=l; ++j)
if(v[i].s>v[j].s)
{
gigel aux;
aux=v[i];
v[i]=v[j];
v[j]=aux;
}
for(i=1; i<=l; ++i)
{
long k=s-v[i].s;
st=1;
dr=l;
gresit=0;
while(st<=dr && !gresit)
{
m=(st+dr)>>1;
if(v[m].s==k)
gresit=1;
else
if(v[m].s<k)
st=m+1;
else
dr=m-1;
}
if(gresit)
{
printf("%ld %ld %ld %ld %ld %ld", v[i].x, v[i].y, v[i].z, v[m].x, v[m].y, v[m].z);
return 0;
}
}
printf("-1");
return 0;
}