Pagini recente » Cod sursa (job #354260) | Cod sursa (job #1692782) | Cod sursa (job #932677) | Cod sursa (job #89270) | Cod sursa (job #3131862)
#include <iostream>
#include <fstream>
#include <unordered_set>
#include <vector>
using namespace std;
vector<int> find_winning_numbers(int N, int S, const vector<int>& lottery_numbers) {
unordered_set<int> nums;
for (int i = 0; i < N; i++) {
int needed_num = S - lottery_numbers[i];
for (int j = i + 1; j < N; j++) {
int second_num = needed_num - lottery_numbers[j];
for (int k = j + 1; k < N; k++) {
int third_num = second_num - lottery_numbers[k];
if (third_num > 0 && nums.count(third_num) > 0) {
return {lottery_numbers[i], lottery_numbers[j], lottery_numbers[k], third_num, second_num, needed_num};
}
}
}
nums.insert(lottery_numbers[i]);
}
return {};
}
int main() {
ifstream input("loto.in");
ofstream output("loto.out");
int N, S;
input >> N >> S;
vector<int> lottery_numbers(N);
for (int i = 0; i < N; i++) {
input >> lottery_numbers[i];
}
vector<int> winning_numbers = find_winning_numbers(N, S, lottery_numbers);
if (!winning_numbers.empty()) {
for (int i = 0; i < 6; i++) {
output << winning_numbers[i] << " ";
}
} else {
output << -1;
}
input.close();
output.close();
return 0;
}