Pagini recente » Cod sursa (job #2733568) | Cod sursa (job #1237267) | Cod sursa (job #1723768) | Cod sursa (job #2838868) | Cod sursa (job #3130502)
#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;
}