1 条题解
-
0
C++ :
#include<stdio.h> #include<string.h> int count=0,pancakes[111]={0},steps[111]={0}; void daozhi(int weizhi); int main() { int n,i,j; while(1) { scanf("%d",&n); if(n==0) return 0; for(i=1;i<=n;i++) scanf("%d",&pancakes[i]); count=0; for(i=n;i>=2;i--) { if(pancakes[i]!=i) { for(j=i-1;j>=1;j--) if(pancakes[j]==i) break; if(j!=1) daozhi(j); daozhi(i); } } printf("%d",count); for(i=0;i<count;i++) printf(" %d",steps[i]); printf("\n"); } } void daozhi(int weizhi) { steps[count++]=weizhi; for(int i=1;i<=weizhi/2;i++) { int temp=pancakes[i]; pancakes[i]=pancakes[weizhi+1-i]; pancakes[weizhi+1-i]=temp; } }
- 1
信息
- ID
- 1487
- 时间
- 1000ms
- 内存
- 32MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者