Pagini recente » Cod sursa (job #1696493) | Cod sursa (job #2439267) | Cod sursa (job #2404839) | Cod sursa (job #2847541) | Cod sursa (job #1805245)
#include <fstream>
#include <algorithm>
using namespace std;
int v[101], s[1000000];
int main()
{
ifstream cin ("loto.in");
ofstream cout ("loto.out");
int n, sum;
cin >> n >> sum;
for (int i = 1; i <= n; ++i)
cin >> v[i];
int nr = 1;
for (int i = 1; i <= n; ++i)
for (int j = i; j <= n; ++j)
for (int k = j; k <= n; ++k)
s[nr++] = v[i] + v[j] + v[k];
nr--;
sort(s, s + nr);
int p, saux, xp, poz;
for (p = 1; p < nr; p <<= 1);
for (int i = 1; i <= n; ++i)
for (int j = i; j <= n; ++j)
for (int k = j; k <= n; ++k)
{
saux = sum - v[i] - v[j] - v[k];
xp = p;
for (poz = 0; xp; xp >>= 1)
if (poz + xp <= nr && s[poz + xp] <= saux)
poz += xp;
if (s[poz] == saux)
for (int i1 = i; i1 <= n; ++i1)
for (int j1 = j; j1 <= n; ++j1)
for (int k1 = k; k1 <= n; ++k1)
if (v[i1] + v[j1] + v[k1] == saux)
{
cout << v[i] << " " << v[j] << " " << v[k] << " " << v[i1] << " " << v[j1] << " " << v[k1] << "\n";
return 0;
}
}
cout << -1 << "\n";
return 0;
}