Pagini recente » Cod sursa (job #2334290) | Cod sursa (job #2347553) | Cod sursa (job #2813697) | Cod sursa (job #1037776) | Cod sursa (job #2733083)
#include <fstream>
std::ifstream fin("loto.in");
std::ofstream fout("loto.out");
#include <vector>
#include <algorithm>
#include <unordered_map>
#include <tuple>
#include <unordered_map>
int main()
{
unsigned N;
int S;
fin >> N >> S;
std::vector<int> vec;
vec.reserve(N);
for(unsigned i = 0; i < N; ++i)
{
int value;
fin >> value;
vec.push_back(value);
}
std::unordered_map<int, std::pair<unsigned char, unsigned char>> sums;
for(unsigned i = 0; i < N; ++i)
{
for(unsigned j = 0; j < N; ++j)
{
sums[vec[i] + vec[j]] = {i, j};
}
}
for(auto el1 : sums)
{
const auto& sum1 = el1.first;
const auto& p1 = el1.second;
for(auto el2 : sums)
{
const auto& sum2 = el2.first;
const auto& p2 = el2.second;
const auto it = sums.find(S - (sum1 + sum2));
if(it != sums.cend())
{
const auto& p3 = it->second;
fout << vec[p1.first] << ' ' << vec[p1.second] << ' ';
fout << vec[p2.first] << ' ' << vec[p2.second] << ' ';
fout << vec[p3.first] << ' ' << vec[p3.second] << '\n';
return 0;
}
}
}
fout << -1 << '\n';
}