Pagini recente » Cod sursa (job #1880783) | Cod sursa (job #226959) | Cod sursa (job #2519329) | Cod sursa (job #1404555) | Cod sursa (job #1241306)
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <ctime>
#include <cmath>
#include <vector>
#include <algorithm>
#include <queue>
using namespace std;
struct elem
{
long long a, b, c;
long long s;
}x;
long long n, y, g, m, i, j, k, s, v[105];
vector <elem> a;
bool cmp(elem a, elem b)
{
return a.s<b.s;
}
long long caut(long long f)
{
long long p=0,u=m;
long long sol=-1;
while(p<=u)
{
long long mij=p+(u-p)/2;
x=a[mij];
if(x.s==f)
return mij;
if(x.s>f) u=mij-1;
else p=mij+1;
}
return -1;
}
int main()
{
freopen("loto.in", "r", stdin);
freopen("loto.out", "w", stdout);
scanf("%lld%lld", &n, &g);
for(i=1;i<=n;i++)
scanf("%lld", &v[i]);
for(i=1;i<=n;i++)
for(j=i;j<=n;j++)
for(k=1;k<=n;k++)
{
x.a=v[i],x.b=v[j],x.c=v[k];
x.s=v[i]+v[j]+v[k];
a.push_back(x);
}
sort(a.begin(), a.end(), cmp);
m=a.size()-1;
for(i=0;i<=m;i++)
{
x=a[i];
s=x.s;
y=caut(g-s);
if(y!=-1)
{
x=a[i];
printf("%lld %lld %lld ", x.a, x.b, x.c);
x=a[y];
printf("%lld %lld %lld ", x.a, x.b, x.c);
return 0;
}
}
printf("-1");
return 0;
}