fork download
  1. #include <iostream>
  2. #include <algorithm>
  3. using namespace std;
  4.  
  5. int main() {
  6. int n;
  7. cin>>n;
  8. int a[n]; // массив для перестановки из n чисел
  9. for (int i = 0; i < n; i++) cin>> a[i];
  10. for (int i = n - 2; i >= 0; i--) {
  11. if (a[i] < a[i+1]){
  12. int min = i + 1; // индекс минимального элемента
  13. for (int j = i + 2; j < n; j++) {
  14. if (a[j] > a[i] && a[j] < a[min]) min = j;
  15. }
  16. swap(a[i], a[min]);
  17. reverse(&a[i+1], &a[n]);
  18. break;
  19. }
  20. if (i == 0) reverse(&a[i], &a[n]);
  21. }
  22. for (int i = 0; i < n; i++) cout << a[i] << " ";
  23. return 0;
  24. }
Success #stdin #stdout 0s 4520KB
stdin
1
9
stdout
9