Pagini recente » Cod sursa (job #674473) | Cod sursa (job #1834213) | Cod sursa (job #1611195) | Cod sursa (job #1351397) | Cod sursa (job #2848905)
#include <bits/stdc++.h>
#define nmax 100
#pragma GCC optimize("Ofast")
#pragma GCC optimize("unroll-loops")
using namespace std;
int v[nmax + 1], sol[7];
struct grup
{
int a, b, c;
};
unordered_map<int, grup> f;
int main()
{
ifstream cin("loto.in");
ofstream cout("loto.out");
int n, s, i, j, k;
ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
cin >> n >> s;
for (i = 1; i <= n; i++)
cin >> v[i];
sort(v + 1, v + n + 1);
for (i = 1; i <= n; i++)
if (v[i] < s)
for (j = i; j <= n; j++)
{
if (v[i] + v[j] < s)
{
for (k = j; k <= n; k++)
{
if (v[i] + v[j] + v[k] < s)
{
f[v[i] + v[j] + v[k]] = {v[i], v[j], v[k]};
if (f.find(s - (v[i] + v[j] + v[k])) != f.end())
{
sol[1] = v[i], sol[2] = v[j], sol[3] = v[k];
sol[4] = f[s - (v[i] + v[j] + v[k])].a, sol[5] = f[s - (v[i] + v[j] + v[k])].b, sol[6] = f[s - (v[i] + v[j] + v[k])].c;
for (i = 1; i <= 6; i++)
cout << sol[i] << " ";
return 0;
}
}
else
break;
}
}
else
break;
}
else
break;
cout << -1;
return 0;
}