Pagini recente » Cod sursa (job #118206) | Cod sursa (job #480818) | Cod sursa (job #1937492) | Cod sursa (job #2037799) | Cod sursa (job #3128268)
#include <bits/stdc++.h>
#define maxn 105
int v[maxn], sol[maxn*maxn*maxn];
int nr;
std::vector<int> res;
struct abc{
int a, b, c;
};
std::unordered_map<int, abc> map;
std::ifstream fin("loto.in");
std::ofstream fout("loto.out");
int main()
{
int n, S, sum;
fin >> n >> S;
for(int i = 0; i < n; i++)
fin >> v[i];
for(int i = 0; i < n; i++)
for(int j = 0; j < n; j++)
for(int k = 0; k < n; k++)
{
sum = v[i] + v[j] + v[k];
sol[nr++] = sum;
map[sum] = {v[i], v[j], v[k]};
}
int t = nr-1;
for(int i = 0; i < n; i++)
{
while(sol[i] + sol[t] > S)
t--;
if(t < 0)
break;
if(sol[i] + sol[t] == S)
{
res.push_back(map[sol[i]].a);
res.push_back(map[sol[i]].b);
res.push_back(map[sol[i]].c);
res.push_back(map[sol[t]].a);
res.push_back(map[sol[t]].b);
res.push_back(map[sol[t]].c);
std::sort(res.begin(), res.end());
for(int i: res)
{
fout << i << " ";
}
return 0;
}
}
fout << -1;
fin.close();
fout.close();
return 0;
}