Pagini recente » Cod sursa (job #177565) | Cod sursa (job #2874880) | Cod sursa (job #1002929) | Cod sursa (job #1966766) | Cod sursa (job #2733080)
#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 [sum1, p1] : sums)
{
for(auto [sum2, p2] : sums)
{
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';
}