online_judge_1146
来源:互联网 发布:手机新三板交易软件 编辑:程序博客网 时间:2024/05/17 11:05
#include <iostream>#include <algorithm>using namespace std;int main(){ int a[31],n; int ans[100]; //之前出错就是因为ans[31]给的空间太小了。。细节也是很要命的…… int i,j; int cnt; while(cin>>n) { if(n==0) break; cnt = 0; for(i=1; i<=n; ++i) { cin>>a[i]; } for(i=n; i>=1; --i) { if(a[i] == i) continue; for(j=2; j<i; ++j) { if(a[j] == i) { reverse(a+1, a+j+1); ans[cnt++] = j; break; } } reverse(a+1, a+i+1); ans[cnt++] = i; } cout<<cnt; for(i=0; i<cnt; ++i) cout<<" "<<ans[i]; cout<<endl; } return 0;}题目一般,头一次发现答案有多种的题目,最佳做法估计太难了……
0 0