Pagini recente » Cod sursa (job #2647529) | Borderou de evaluare (job #2012371) | Cod sursa (job #3231990) | Cod sursa (job #688691) | Cod sursa (job #3188408)
#include <bits/stdc++.h>
using namespace std;
int n, s, p, a[110];
struct ceva
{
int sum;
int x, y, z;
} v[1000010];
bool cmp(ceva a, ceva b)
{
return a.sum < b.sum;
}
int main()
{
freopen("test.in", "r", stdin);
freopen("test.out", "w", stdout);
cin >> n >> s;
for(int i = 1; i <= n; i++)
cin >> a[i];
for(int i = 1; i <= n; i++)
for(int j = i; j <= n; j++)
for(int k = j; k <= n; k++)
{
v[++p].sum = a[i] + a[j] + a[k];
v[p].x = a[i];
v[p].y = a[j];
v[p].z = a[k];
}
sort(v + 1, v + p + 1, cmp);
for(int i = 1; i <= p; i++)
{
int searchedSum = s - v[i].sum;
int st = 1, dr = p;
while(st <= dr)
{
int mij = (st + dr) / 2;
if(v[mij].sum == searchedSum)
{
cout << v[i].x << ' ' << v[i].y << ' ' << v[i].z << ' ' << v[mij].x << ' ' << v[mij].y << ' ' << v[mij].z;
exit(0);
}
else if(searchedSum < v[mij].sum)
dr = mij - 1;
else
st = mij + 1;
}
}
cout << -1;
return 0;
}