Pagini recente » Cod sursa (job #797897) | Cod sursa (job #129588) | Cod sursa (job #2790911) | Cod sursa (job #2531448) | Cod sursa (job #3130601)
#include <iostream>
#include <vector>
#include <fstream>
#include <unordered_map>
#include <algorithm>
std::ifstream in_file("loto.in");
std::ofstream out_file("loto.out");
std::vector<int> find_winning_numbers(int sum,const std::vector<int>& numbers){
std::vector<int> winningNumbers;
std::unordered_map<int,std::vector<int>> combinations;
for(int first : numbers){
for(int second : numbers){
for(int third : numbers){
combinations[first+second+third]={first,second,third};
}
}
}
for(auto combination : combinations){
if(combinations.find(sum-combination.first)!=combinations.end()){
winningNumbers.push_back(combination.second[0]);
winningNumbers.push_back(combination.second[1]);
winningNumbers.push_back(combination.second[2]);
winningNumbers.push_back(combinations[sum-combination.first][0]);
winningNumbers.push_back(combinations[sum-combination.first][1]);
winningNumbers.push_back(combinations[sum-combination.first][2]);
return winningNumbers;
}
}
winningNumbers.push_back(-1);
return winningNumbers;
}
int main(){
int n,sum;
in_file>>n>>sum;
std::vector<int> numbers(n);
for (int i=0;i<n;++i) {
in_file>>numbers[i];
}
std::vector<int> winning_numbers=find_winning_numbers(sum,numbers);
std::sort(winning_numbers.begin(),winning_numbers.end());
for(const int& number : winning_numbers) {
out_file<<number<<" ";
}
in_file.close();
out_file.close();
return 0;
}