首页 > 其他 > 详细

HDU - 4550 卡片游戏

时间:2017-02-22 22:06:20      阅读:194      评论:0      收藏:0      [点我收藏+]
技术分享
 1 #include<stdio.h>
 2 #include<string.h>
 3 int main()
 4 {
 5     int i,j,k,l,n,h,t,min,head,tail,num[1000];
 6     char a[1000];
 7     scanf("%d",&t);
 8     for(j=0;j<t;j++)
 9     {
10         scanf("%s",a);
11         n=strlen(a);
12         min=99999;
13         for(i=n-1;i>=0;i--)
14         {
15             if((a[i]!=0)&&(a[i]<min))
16             {
17                 min=a[i];
18                 h=i;
19             }
20         }//从右到左找到第一个非零最小数;
21         if(h==0)
22         {
23             printf("%s\n",a);
24             continue;
25         }//如果没有h之前的部分可以直接输出;
26         head=500;
27         tail=500;
28 //分别记录答案序列的头尾位置;
29         num[500]=a[0]-0;
30         for(i=1;i<h;i++)
31         {
32             if(a[i]-0<=num[head])
33             {
34                 head--;
35                 num[head]=a[i]-0;
36             }
37             else
38             {
39                 tail++;
40                 num[tail]=a[i]-0;
41             }
42         }//先处理前h的部分
43         head--;
44         num[head]=a[h]-0;//把第h个数字放在最前面
45         for(i=h+1;i<n;i++)
46         {
47             tail++;
48             num[tail]=a[i]-0;
49         }//把h之后的部分接在后面;
50         for(i=head;i<=tail;i++)
51         {
52             printf("%d",num[i]);
53         }
54         printf("\n");
55     }
56 }
View Code

 

HDU - 4550 卡片游戏

原文:http://www.cnblogs.com/NWUACM/p/6431069.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!