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
原创粉丝点击