Cod sursa(job #3131862)

Utilizator bobic.teona20Bobic Teona-Christiana bobic.teona20 Data 21 mai 2023 20:14:30
Problema Loto Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.38 kb
#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;
}