码迷,mamicode.com
首页 > 其他好文 > 详细

Uva120 Stacks of Flapjacks

时间:2015-09-23 18:45:40      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 using namespace std;
 5 int a[31],n;
 6 
 7 void rev(int ct) {
 8     printf("%d ", n-ct);
 9     for (int i=0;i<=ct/2;++i)
10         swap(a[i],a[ct-i]);
11 }
12 
13 int scan()
14 {
15     char ch=0;
16     memset(a,0,sizeof(a));
17     if(scanf("%d",&a[0])==EOF)
18         return 0;
19     int i=1;
20     while((ch=getchar())&&ch!=\n)
21         scanf("%d",&a[i++]);
22     return i;
23 }
24 int main()
25 {
26     while(n=scan())
27     {
28         printf("%d",a[0]);
29         for(int i=1;i<n;++i)
30             printf(" %d",a[i]);
31         printf("\n");
32         int cnt=n;
33         while(cnt)
34         {
35             int maxn=0,flag;
36             for (int i=0;i<cnt;++i)
37             {
38                 if (a[i]>maxn)
39                 {
40                     maxn=a[i];
41                     flag=i;
42                 }
43             }
44             if(flag!=cnt-1)
45             {
46                 if(flag!=0)
47                     rev(flag);
48                 rev(cnt-1);
49             }
50             cnt--;
51         }
52         printf("0\n");
53     }
54     return 0;
55 }

 

题意:给出一些数列, 一次只能让第一个到第i个数列全部反转,要求把数列排序为升序。

 

Uva120 Stacks of Flapjacks

标签:

原文地址:http://www.cnblogs.com/sunshinemxh/p/4832924.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!