Pagini recente » Cod sursa (job #3239124) | Cod sursa (job #3152387) | Cod sursa (job #2130461) | Cod sursa (job #2317503) | Cod sursa (job #2911220)
#include <fstream>
#include <unordered_map>
#include <vector>
#include <array>
using namespace std;
ifstream cin("loto.in");
ofstream cout("loto.out");
struct triplet
{
int a, b, c;
};
int n, sum, a[100], nsums;
pair<int, triplet> vsums[1000000];
int main()
{
cin >> n >> sum;
for(int i = 0; i < n; i++)
cin >> a[i];
unordered_map<int, triplet> sums;
for(int i = 0; i < n; i++)
for(int j = i; j < n; j++)
for(int k = j; k < n; k++)
{
triplet v;
v.a = a[i]; v.b = a[j]; v.c = a[k];
int s = a[i] + a[j] + a[k];
if(s <= sum && sums.find(s) == sums.end())
{
sums[s] = v;
vsums[nsums++] = {s, v};
}
}
for(int i = 0; i < nsums; i++)
if(sums.find(sum - vsums[i].first) != sums.end())
{
triplet a = vsums[i].second, b = sums[sum - vsums[i].first];
cout << a.a << ' ' << a.b << ' ' << a.c << ' ' << b.a << ' ' << b.b << ' ' << b.c;
cout << '\n';
return 0;
}
cout << "-1\n";
return 0;
}