Cod sursa(job #3130502)

Utilizator CostyRoCostin Ionescu CostyRo Data 17 mai 2023 21:34:20
Problema Loto Scor 15
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.03 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>

std::vector<int> chosen_numbers;
std::ifstream inputFile("loto.in");
std::ofstream outputFile("loto.out");

bool solve(const std::vector<int> &numbers, int target_sum, int sum, int index) {
  if(sum==target_sum && chosen_numbers.size()==6){
    return true;
  }

  if(index>=numbers.size() || sum>target_sum || chosen_numbers.size()==6){
    return false;
  }

  for (int i=index;i<numbers.size();i++){
    chosen_numbers.push_back(numbers[i]);
    if (solve(numbers,target_sum,sum+numbers[i],i)){
      return true;
    }
    chosen_numbers.pop_back();
  }

  return false;
}

int main() {
  int n,sum;

  inputFile>>n>>sum;

  std::vector<int> numbers(n);
  for(int i=0;i<n;i++){
    inputFile>>numbers[i];
  }

  if(solve(numbers,sum,0,0)){
    for (const int& number : chosen_numbers){
      outputFile<<number<<" ";
    }
  }
  else{
    outputFile<<-1;
  }

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

  return 0;
}