Advertisement
PGSStas

Untitled

Sep 30th, 2019
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.90 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <algorithm>
  4.  
  5. void Print(const std::vector<int> &values) {
  6.     for (size_t i = 1; i < values.size(); i++) {
  7.         std::cout << values[i] << " ";
  8.     }
  9.     std::cout << '\n';
  10. }
  11.  
  12. int main() {
  13.     int n;
  14.     std::cin >> n;
  15.     std::vector<int> v(n + 1);
  16.     for (int i = 0; i < n; i++) {
  17.         std::cin >> v[i + 1];
  18.     }
  19.  
  20.     std::sort(v.begin(), v.end());
  21.     Print(v);
  22.  
  23.     while (true) {
  24.         int j = n;
  25.         while (v[j] <= v[j - 1]) {
  26.             j--;
  27.         }
  28.         j--;
  29.  
  30.         if (j == 0) {
  31.             break;
  32.         }
  33.         for (int i = n; i > j; i--) {
  34.             if (v[i] > v[j]) {
  35.                 std::swap(v[i], v[j]);
  36.                 break;
  37.             }
  38.         }
  39.  
  40.         for (int i = n; i > j + (n - j) / 2; i--) {
  41.             std::swap(v[i], v[j + n - i + 1]);
  42.         }
  43.  
  44.         Print(v);
  45.     }
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement