题目1146:Flipping Pancake

来源:互联网 发布:java pdf生成 编辑:程序博客网 时间:2024/06/06 10:03
#include <stdio.h>void change(int num,int *arry,int m){    int left=1;    while(left<m)    {        int temp=arry[left];        arry[left]=arry[m];        arry[m]=temp;        left++;        m--;    }}int main(){    int num;    int a[31],b[100];    while(scanf("%d",&num)!=EOF&&num!=0)    {        int index=0;        for(int i=1;i<=num;i++)            scanf("%d",&a[i]);        for(int i=num;i>=1;i--)        {            if(a[i]==i)                continue;            if(a[1]!=i)            {                for(int j=2;j<=num;j++)                {                    if(a[j]==i)                    {                        change(num,a,j);                        b[index++]=j;                    }                }            }            change(num,a,i);            b[index++]=i;        }        printf("%d",index);        for(int i=0;i<index;i++)            printf(" %d",b[i]);        printf("\n");    }    return 0;}/**************************************************************    Problem: 1146    User: cust123    Language: C++    Result: Accepted    Time:0 ms    Memory:1020 kb****************************************************************/

0 0
原创粉丝点击