Advertisement
Mirandek

Untitled

Dec 15th, 2015
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.82 KB | None | 0 0
  1. #include <cstdio>
  2. #include <iostream>
  3. #include <vector>
  4. #include <algorithm>
  5.  
  6. using namespace std;
  7.  
  8. vector<int> a;
  9.  
  10. bool next_permutation(vector<int>::iterator begin, vector<int>::iterator end) {
  11.     vector<int>::iterator it = end - 1;
  12.     while (it !=begin && *(it - 1) >= *it) {
  13.         --it;
  14.     }
  15.     if (it == begin) {
  16.         return false;
  17.     }
  18.     int element = *it;
  19.     vector<int>::iterator pos;
  20.  
  21.     for (vector<int>::iterator i = end - 1; i != it + 1; --i) {
  22.         if (*i > element) {
  23.             pos = i;
  24.             break;
  25.         }
  26.     }
  27.  
  28.     swap(it, pos);
  29.     sort(it + 1, end);
  30.  
  31.     return true;
  32. }
  33.  
  34. int main() {
  35.     int n;
  36.     int c;
  37.     scanf("%d", &n);
  38.     for (int i = 0; i < n; ++i) {
  39.         scanf("%d", &c);
  40.         a.push_back(c);
  41.     }      
  42.     printf("%d\n", next_permutation(a.begin(), a.end()));
  43.  
  44.     for (int i = 0; i < a.size(); ++i) {
  45.         printf("%d ", a[i]);
  46.     }
  47.  
  48.     return 0;
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement