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

CodeForces 697B Barnicle 模拟

时间:2016-08-09 22:05:40      阅读:211      评论:0      收藏:0      [点我收藏+]

标签:

强行模拟 纪念一下……

 1 #include<stdio.h>
 2 #include<iostream>
 3 #include<algorithm>
 4 #include<math.h>
 5 #include<string.h>
 6 #include<string>
 7 #include<map>
 8 #include<vector>
 9 #include<queue>
10 #define M(a,b) memset(a,b,sizeof(a))
11 using namespace std;
12 char str[505];
13 char strr[505];
14 queue<int>take;
15 int main(){
16     while(~scanf("%s",str)){
17         M(strr,NULL);
18         int len=strlen(str);
19         int i=0,j;
20         while(true){
21             if(str[i]==e) break;
22             else strr[i]=str[i];
23             if(str[i]==.) j=i;
24             i++;
25         }
26 //        printf("%s\n",strr);
27         int pow_=len-1-i;
28         int ll=str[i+1]-0;
29         for(int k=2;str[i+k];k++){
30             ll*=10;
31             ll+=str[i+k]-0;
32         }
33 //        printf("ll==%d\n",ll);
34         while((strr[j+1]>=0&&strr[j+1]<=9)&&ll){
35             swap(strr[j],strr[j+1]);
36             j++,ll--;
37         }
38 //        printf("ll==%d\n",ll);
39         int from=0;
40         while(true){
41             if(strr[from]==0) from++;
42             else break;
43         }
44 //        printf("from==%d\n",from);
45         if(strr[j-1]==0) from--;
46         if(from<0) from=0;
47         int lenn=strlen(strr);
48 //        printf("%d %c %c\n",lenn,strr[lenn-1],strr[lenn-2]);
49         if(strr[lenn-1]==0 && strr[lenn-2]==.){
50             for(int q=0;q<lenn-2;q++)
51                 printf("%c",strr[q]);
52             puts("");
53             continue;
54         }
55         if(j==i-1&&ll==0){
56 //            printf("222223\n");
57             for(int q=from;q<i-1;q++)
58                 printf("%c",strr[q]);
59             puts("");
60         }
61         else if(ll!=0){
62 //            printf("1111111\n");
63             for(int q=0;strr[q];q++){
64                 if(strr[q]==.) break;
65                 else printf("%c",strr[q]);
66             }
67             while(ll){
68                 printf("0");
69                 ll--;
70             }
71             puts("");
72         }
73         else{
74 //            printf("22222\n");
75             for(int q=from;q<i;q++)
76                 printf("%c",strr[q]);
77             puts("");
78         }
79     }
80     return 0;
81 }

 

CodeForces 697B Barnicle 模拟

标签:

原文地址:http://www.cnblogs.com/general10/p/5754631.html

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