Advertisement
i_love_rao_khushboo

Untitled

Sep 7th, 2024 (edited)
481
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.16 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <string>
  4. #include <algorithm>
  5.  
  6. using namespace std;
  7.  
  8. int minSwaps(vector<int>& arr) {
  9.     int n = arr.size();
  10.     vector<bool> visited(n, false);
  11.     int cycles = 0;
  12.    
  13.     for (int i = 0; i < n; ++i) {
  14.         if (!visited[i]) {
  15.             cycles++;
  16.             int j = i;
  17.             while (!visited[j]) {
  18.                 visited[j] = true;
  19.                 j = arr[j] - 1;
  20.             }
  21.         }
  22.     }
  23.    
  24.     return n - cycles;
  25. }
  26.  
  27. string sortPermutation(vector<int> p, vector<int> moves) {
  28.     int min_moves = minSwaps(p);
  29.     string result;
  30.    
  31.     for (int move : moves) {
  32.         if ((move >= min_moves) and ((min_moves - move) % 2 == 0)) {
  33.             result += '1';
  34.         } else {
  35.             result += '0';
  36.         }
  37.     }
  38.    
  39.     return result;
  40. }
  41.  
  42. int main() {
  43.     // vector<int> p = {2, 3, 1, 4};
  44.     // vector<int> moves = {2, 3};
  45.    
  46.     // vector<int> p = {4, 5, 1, 3, 2};
  47.     // vector<int> moves = {1, 2, 3};
  48.    
  49.     vector<int> p = {3, 1, 2};
  50.     vector<int> moves = {2, 4};
  51.    
  52.     cout << sortPermutation(p, moves) << endl;  // Output: "10"
  53.    
  54.     return 0;
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement