1class Solution {2private:3void reverse(vector<int> &arr, int start, int end) {4while (start < end) {5swap(arr[start++], arr[end--]);6}7}89public:10vector<int> pancakeSort(vector<int> &arr) {11vector<int> copy = arr;12sort(copy.begin(), copy.end());13int end = copy.size() - 1;14vector<int> ans;15while (end > 0) {16if (arr[end] != copy[end]) {17int pos = end - 1;18while (arr[pos] != copy[end]) {19pos--;20}21reverse(arr, 0, pos);22if (pos != 0) {23ans.push_back(pos + 1);24}25reverse(arr, 0, end);26ans.push_back(end + 1);27}28end--;29}30return ans;31}32};