fork(1) download
  1. #include <iostream>
  2. #include <tuple>
  3. #include <utility>
  4. #include <cstddef>
  5.  
  6.  
  7. int main() {
  8. auto const minmax_val = [] (auto const lhs, auto const rhs) {
  9. return rhs < lhs ? std::make_pair(rhs, lhs) : std::make_pair(lhs, rhs);
  10. };
  11.  
  12. std::size_t size;
  13. std::cin >> size;
  14.  
  15. int min[3];
  16. std::cin >> min[0] >> min[1] >> min[2];
  17.  
  18. std::tie(min[0], min[1]) = minmax_val(min[0], min[1]);
  19. std::tie(min[0], min[2]) = minmax_val(min[0], min[2]);
  20. std::tie(min[1], min[2]) = minmax_val(min[1], min[2]);
  21.  
  22. for (std::size_t i = 3; i != size; ++i) {
  23. int val;
  24. std::cin >> val;
  25.  
  26. if (val < min[2]) {
  27. int tmp;
  28. std::tie(min[0], tmp) = minmax_val(min[0], val);
  29. std::tie(min[1], min[2]) = minmax_val(min[1], tmp);
  30. }
  31. }
  32.  
  33. std::cout << min[0] << ' ' << min[1] << ' ' << min[2] << '\n';
  34. }
  35.  
Success #stdin #stdout 0s 4444KB
stdin
6
1 2 3 4 0 5
stdout
0 1 2