Pagini recente » Cod sursa (job #2622503) | Cod sursa (job #1055086) | Cod sursa (job #1467696) | Cod sursa (job #837205) | Cod sursa (job #2498042)
#include <bits/stdc++.h>
#define newline '\n'
#define ll long long
#define uns unsigned
#define deb(x) cerr << x << ' '
#define debnewL(x) cerr << x << newline
using namespace std;
///************************************
ifstream fin("loto.in");
ofstream fout("loto.out");
///************************************
const uns P = 370003;
int n, S;
vector <int> h[P + 2];
int v[105];
inline void Read()
{
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++)
{
int s = v[i] + v[j] + v[k];
h[s % P].push_back(s);
}
}
inline void Solve()
{
for (int i = 1; i <= n; i++)
for (int j = i; j <= n; j++)
for (int k = j; k <= n; k++)
{
int s = v[i] + v[j] + v[k];
int dif = S - s;
if (dif <= 0)
continue;
int r = dif % P;
for (int t = 0; t < h[r].size(); t++)
if (h[r][i] == dif)
{
for (int ii = 1; ii <= n; ii++)
for (int jj = ii; jj <= n; jj++)
for (int kk = jj; kk <= n; kk++)
if (v[ii] + v[jj] + v[kk] == dif)
{
fout << v[i] << ' ' << v[j] << ' ' << v[k] << ' ' << v[ii] << ' ' << v[jj] << ' ' << v[kk];
return;
}
}
}
fout << -1;
}
int main()
{
Read();
Solve();
return 0;
}