Pagini recente » Cod sursa (job #1009436) | Cod sursa (job #2182147) | Cod sursa (job #2834564) | Cod sursa (job #502732) | Cod sursa (job #2942648)
#include<bits/stdc++.h>
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
int n, s, cnt, x, v[105];
struct loto {
int s;
int x1;
int x2;
int x3;
}suma[1000005];
bool comp(const loto& a, const loto& b)
{
return a.s < b.s;
}
int main()
{
fin >> n >> s;
for (int i = 1; i <= n; i++)
fin >> v[i];
for (int i = 1; i <= n; i++)
for (int j = i; j <= n; j++)
for (int k = j; k <= n; k++)
{
suma[++cnt].s = v[i] + v[j] + v[k];
suma[cnt].x1 = v[i];
suma[cnt].x2 = v[j];
suma[cnt].x3 = v[k];
}
sort(suma + 1, suma + cnt + 1, comp);
for (int i = 1; i <= cnt; i++)
{
int s1 = s - suma[i].s;
int l = 1, r = cnt;
while (l <= r)
{
int mid = (l + r) / 2;
if (suma[mid].s == s1)
{
fout << suma[i].x1 << " " << suma[i].x2 << " " << suma[i].x3 << " " << suma[mid].x1 << " " << suma[mid].x2 << " " << suma[mid].x3 << '\n';
return 0;
}
if (suma[mid].s < s1)
l = mid + 1;
else r = mid - 1;
}
}
fout << -1 << '\n';
return 0;
}