Pagini recente » Cod sursa (job #923360) | Cod sursa (job #3242254) | Cod sursa (job #2691280) | Cod sursa (job #1985426) | Cod sursa (job #2911219)
#include <fstream>
#include <unordered_map>
#include <vector>
#include <array>
using namespace std;
ifstream cin("loto.in");
ofstream cout("loto.out");
int n, sum, a[100], nsums;
pair<int, array<int, 3>> vsums[1000000];
int main()
{
cin >> n >> sum;
for(int i = 0; i < n; i++)
cin >> a[i];
unordered_map<int, array<int, 3>> sums;
for(int i = 0; i < n; i++)
for(int j = i; j < n; j++)
for(int k = j; k < n; k++)
{
array<int, 3> v;
v[0] = a[i]; v[1] = a[j]; v[2] = a[k];
int s = a[i] + a[j] + a[k];
if(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())
{
for(int j = 0; j < 3; j++)
cout << vsums[i].second[j] << ' ';
for(int j = 0; j < 3; j++)
cout << sums[sum - vsums[i].first][j] << ' ';
cout << '\n';
return 0;
}
cout << "-1\n";
return 0;
}