Advertisement
Guest User

Untitled

a guest
Sep 18th, 2019
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.30 KB | None | 0 0
  1. #include <stdlib.h>
  2. #include <iostream>
  3. #include <fstream>
  4. #include <vector>
  5. #include <algorithm>
  6.  
  7. using namespace std;
  8.  
  9.  
  10.  
  11. template <class smth>
  12. bool my_next_permutation(smth first, smth last)
  13. {
  14.     smth end = last;
  15.     end--;
  16.     if (first == end)  return 0;
  17.     smth runner = end;
  18.     --runner;
  19.     smth right, left;
  20.     left = end;
  21.     while (*runner >= * left)
  22.     {      
  23.         if (runner == first)
  24.         {          
  25.             reverse(first, last);
  26.             return 0;
  27.         }
  28.         runner--;
  29.         left--;
  30.     }
  31.    
  32.     right = end;
  33.     while ((*right <= *runner) && (right > left))
  34.     {
  35.         right--;               
  36.     }
  37.    
  38.     iter_swap(runner, right);
  39.     sort(left, last);
  40.     return 1;
  41. }
  42.  
  43. int main()
  44. {
  45.     setlocale(LC_ALL, "Russian");
  46.     ofstream out("track_list.txt");
  47.     vector <string> vec {"23hi", "bab", "dhoaish", "rh3d"};
  48.     sort(vec.begin(), vec.end());
  49.     do
  50.     {
  51.         for (int i = 0; i < vec.size(); i++)
  52.         {
  53.             //cout << vec[i] << ' ';
  54.             out << vec[i] << ' ';
  55.         }
  56.         cout << '\n';
  57.         out << '\n';
  58.     } while (my_next_permutation(vec.begin(), vec.end()));
  59.    
  60.     //cout << "-------------------------" << '\n';
  61.     out << "-------------------------" << '\n';
  62.  
  63.     do
  64.     {
  65.         for (int i = 0; i < vec.size(); i++)
  66.         {
  67.             //cout << vec[i];
  68.             out << vec[i] << ' ';
  69.         }
  70.         //cout << '\n';
  71.         out << '\n';
  72.     } while (next_permutation(vec.begin(), vec.end()));
  73.  
  74.     out.close();
  75.     return 0;
  76.  
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement