vector<int> pancakeSort(vector<int>& A) { vector<int> res; int len = A.size(); for (int i = len - 1; i >= 0; i--) { // A[i] from [1, len], after sort, A[i] should be i + 1 if (A[i] == i + 1) { // cout << i<<" continue:"<<A[i]<<" "<<i+1<<endl; continue; } int max_idx = 0; while (A[max_idx] != i + 1) { max_idx++; } // cout << max_idx << " "<<i + 1<<endl; // reserve i + 1 to head; reserveA(A, 0, max_idx); res.push_back(max_idx + 1); // reserve head to i reserveA(A, 0, i); res.push_back(i + 1); } // for (auto& i : A) { // cout<<i<<" "; // } cout<<endl; return res; }
int main(void) { while(scanf("%d%d",&n,&m)) { if(n==0&&m==0) break; scanf("%d%d",&x,&y); for(int i=0; i<n; i++) { scanf("%s",&str[i]); } solveA(m,n,y); //y代表宽度 reserveB(m,n); int total=solveB(n,m,x); //x代表高度 if(x!=y) { reserveA(m,n); solveA(n,m,y); reserveB(n,m); total+=solveB(m,n,x); } printf("%d\n",total); //free memory } return 0; }