fork download
  1. #include <algorithm>
  2. #include <iostream>
  3. #include <utility>
  4.  
  5. std::pair<int, int> get_min_max(int n1, int n2)
  6. {
  7. if (n1 < n2) {
  8. return {n1, n2};
  9. } else {
  10. return {n2, n1};
  11. }
  12. }
  13.  
  14. std::pair<int, int> get_min_max(int n1, int n2, int n3, int n4, int n5)
  15. {
  16. auto p1 = get_min_max(n1, n2);
  17. auto p2 = get_min_max(n3, n4);
  18. auto mini = get_min_max(p1.first, p2.first).first;
  19. auto maxi = get_min_max(p1.second, p2.second).second;
  20. if (n5 < mini) {
  21. return {n5, maxi};
  22. } else if (maxi < n5) {
  23. return {mini, n5};
  24. } else {
  25. return {mini, maxi};
  26. }
  27. }
  28.  
  29. int main()
  30. {
  31. int array[] = {1, 2, 3, 4, 5};
  32.  
  33. do {
  34. auto p = get_min_max(array[0], array[1], array[2], array[3], array[4]);
  35.  
  36. if (p.first != 1 || p.second != 5) {
  37. std::cout << "error in method get_min_max" << std::endl;
  38. return -1;
  39. }
  40. } while (std::next_permutation(std::begin(array), std::end(array)));
  41. auto p = get_min_max(3, 2, 5, 1, 4);
  42.  
  43. std::cout << p.first << " " << p.second << std::endl;
  44. return 0;
  45. }
  46.  
Success #stdin #stdout 0s 3340KB
stdin
Standard input is empty
stdout
1 5