Stacks of Flapjacks UVA 薄饼排序问题
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
// 有点类似栈和队列的操作,但在这里可以用纯数组模拟出来。 #include <iostream> #include <cstring> #include <cstdio> #include <algorithm> using namespace std; int a[32],b[32]; int main() { int u=0,j,k; while(cin>>a[u]) { b[u]=a[u]; if(getchar()=='\n') { u+=1; for(int i=0;i<u;++i) { if(i) cout<<" "; cout<<a[i]; } cout<<endl; sort(b,b+u); for(i=u-1;i>=0;--i) { for(j=0;j<u;++j) { if(b[i]==a[j] && i!=j) { if(j==0) cout<<u-i<<" "; else cout<<u-j<<" "<<u-i<<" "; int v=0,c[32]; for(k=i;k>j;--k) c[v++]=a[k]; for(k=0;k<=j;++k) c[v++]=a[k]; for(k=i+1;k<=u-1;++k) c[v++]=a[k]; for(k=0;k<v;++k) a[k]=c[k]; break; } } } cout<<"0"<<endl; u=0; } else u++; } return 0; }