Pagini recente » Cod sursa (job #2755737) | Cod sursa (job #816472) | Cod sursa (job #2575700) | Cod sursa (job #1568776) | Cod sursa (job #1740059)
#include<bits/stdc++.h>
#define INF 1000005
using namespace std;
typedef struct tip
{
int suma;
int x1;
int x2;
int x3;
};
tip v[INF];
bool f(tip a,tip b)
{
if (a.suma<b.suma) return 1;
return 0;
}
int *a;
int n,s,ls,ld,mid,sol;
int main()
{
freopen("loto.in","r",stdin);
freopen("loto.out","w",stdout);
scanf("%d%d",&n,&s);
//v=new tip[n*n*n+5];
a=new int[n+5];
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
}
sort(a+1,a+n+1);
int dv=0;
for(int i=1;i<=n;i++)
{
for(int j=i;j<=n;j++)
{
for(int k=j;k<=n;k++)
{
dv++;
v[dv].suma=a[i]+a[j]+a[k];
v[dv].x1=i;
v[dv].x2=j;
v[dv].x3=k;
}
}
}
for(int i=1;i<=dv;i++)
{
int x=s-v[i].suma;
ls=1;
ld=dv;
mid=0;
sol=0;
while (ls<=ld)
{
mid=ls+(ld-ls)/2;
if (v[mid].suma==x)
{
sol=mid;
ls=ld+1;
}
else
if (v[mid].suma<x) ls=mid+1;
else ld=mid-1;
}
if (sol)
{
printf("%d %d %d %d %d %d\n",v[i].x1,v[i].x2,v[i].x3,v[sol].x1,v[sol].x2,v[sol].x3);
// ok=1;
// break;
return 0;
}
}
printf("-1\n");
// sort(v+1,v+dv+1,f);
return 0;
}