Cod sursa(job #3131147)

Utilizator dariutTache Daria dariut Data 19 mai 2023 12:53:29
Problema Loto Scor 15
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.19 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

vector<int> loto;
vector<int> combination;

bool findCombination(int index, int sum, int targetSum, int k) {
    if (sum == targetSum && k == 6) {
        return true;
    }

    if (index >= loto.size() || sum > targetSum || k > 6) {
        return false;
    }

    combination.push_back(loto[index]);
    if (findCombination(index, sum + loto[index], targetSum, k + 1)) {
        return true;
    }
    combination.pop_back();

    if (findCombination(index + 1, sum, targetSum, k)) {
        return true;
    }

    return false;
}

int main() {
    ifstream inputFile("loto.in");
    ofstream outputFile("loto.out");

    int N, S;
    inputFile >> N >> S;

    loto.resize(N);
    for (int i = 0; i < N; i++) {
        inputFile >> loto[i];
    }

    combination.clear();

    if (findCombination(0, 0, S, 0) && combination.size() == 6) {
        for (int i = 0; i < combination.size(); i++) {
            outputFile << combination[i] << " ";
        }
    }
    else {
        outputFile << -1;
    }

    inputFile.close();
    outputFile.close();

    return 0;
}