Pagini recente » Istoria paginii runda/qwertyu/clasament | Cod sursa (job #726468) | Cod sursa (job #1329546) | Cod sursa (job #2194518) | Cod sursa (job #954518)
Cod sursa(job #954518)
#include <algorithm>
#include <fstream>
#include <iostream>
#include <map>
#include <tuple>
#include <vector>
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
const int DRAWS = 6;
int N, S;
int nums[DRAWS];
map<int, tuple<int, int, int>> sums;
void read_input();
void solve();
int main() {
read_input();
solve();
return 0;
}
void read_input() {
fin >> N >> S;
for (int i = 0; i < DRAWS; ++i) {
fin >> nums[i];
}
}
void solve() {
for (int i = 0; i < DRAWS; ++i) {
for (int j = 0; j < DRAWS; ++j) {
for (int k = 0; k < DRAWS; ++k) {
int sum = nums[i] + nums[j] + nums[k];
sums[sum] = make_tuple(nums[i], nums[j], nums[k]);
}
}
}
for (int i = 0; i < DRAWS; ++i) {
for (int j = 0; j < DRAWS; ++j) {
for (int k = 0; k < DRAWS; ++k) {
int sum = nums[i] + nums[j] + nums[k];
if (sum > S) continue;
auto it = sums.find(S - sum);
if (it != sums.end()) {
vector<int> answer;
answer.push_back(nums[i]);
answer.push_back(nums[j]);
answer.push_back(nums[k]);
answer.push_back(get<0>(it->second));
answer.push_back(get<1>(it->second));
answer.push_back(get<2>(it->second));
sort(answer.begin(), answer.end());
for (auto l : answer) {
fout << l << ' ';
}
return;
}
}
}
}
fout << -1;
}