Cod sursa(job #3130534)

Utilizator CostyRoCostin Ionescu CostyRo Data 17 mai 2023 22:10:30
Problema Loto Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.68 kb
#include <iostream>
#include <vector>
#include <fstream>
#include <utility>
#include <algorithm>

std::ifstream in_file("loto.in");
std::ofstream out_file("loto.out");

std::vector<int> find_winning_numbers(int n,int sum,const std::vector<int>& numbers){
  std::vector<int> winning_numbers;

  std::vector<std::pair<std::pair<int,int>,int>> combinations;
  for(int i=0;i<n;++i){
    for(int j=i;j<n; ++j){
      combinations.push_back(std::make_pair(std::make_pair(numbers[i],numbers[j]),numbers[i]+numbers[j]));
    }
  }

  for(const auto& combination1 : combinations){
    for(const auto& combination2 : combinations){
      for(const auto& combination3 : combinations){
        if(sum==combination1.second+combination2.second+combination3.second){
          winning_numbers.push_back(combination1.first.first);
          winning_numbers.push_back(combination1.first.second);
          winning_numbers.push_back(combination2.first.first);
          winning_numbers.push_back(combination2.first.second);
          winning_numbers.push_back(combination3.first.first);
          winning_numbers.push_back(combination3.first.second);
          return winning_numbers;
        }
      }
    }
  }

  winning_numbers.push_back(-1);
  return winning_numbers;
}

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(n,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;
}