Pagini recente » Cod sursa (job #1437083) | Cod sursa (job #1449295) | Cod sursa (job #1780706) | Cod sursa (job #2828738) | Cod sursa (job #2438924)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
int n, z;
long long s, v[105];
struct info
{
long long a,b,c,sum;
}sum[1000007];
bool cmp(info a, info b)
{
return a.sum < b.sum;
}
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 = 1; j <= n; ++j)
{
for (int k = 1; k <= n; ++k)
{
sum[++z] = {v[i], v[j], v[k], v[i] + v[j] + v[k]};
}
}
}
sort(sum + 1, sum + z + 1, cmp);
for (int i = 1; i <= z; ++i)
{
int st = 1, dr = z, sol = -1;
long long s2 = s - sum[i].sum;
if (s2 > 0)
{
while (st <= dr)
{
int mid = (st + dr) / 2;
if (s2 - sum[mid].sum >= 0)
{
sol = mid;
st = mid + 1;
}
else
{
dr = mid - 1;
}
}
if (sol)
{
if (s2 - sum[sol].sum == 0)
{
int ve[] = {sum[i].a, sum[i].b, sum[i].c, sum[sol].a, sum[sol].b, sum[sol].c};
sort(ve, ve + 6);
for (int idk = 0; idk < 6; ++idk)
{
fout << ve[idk] << " ";
}
return 0;
}
}
}
}
fout << -1;
return 0;
}