牛客网 牛客练习赛13 C.幸运数字Ⅲ-思维

 

C.幸运数字Ⅲ
 
 
 
这个题447和477是特殊的,其他的就没什么了。
 
代码:
 1 #include<iostream>
 2 #include<cstring>
 3 #include<cstdio>
 4 #include<cmath>
 5 #include<algorithm>
 6 using namespace std;
 7 const int maxn=1e5+10;
 8 char s[maxn];
 9 int vis[maxn];
10 int main(){
11     int n,k;
12     cin>>n>>k;
13     cin>>s+1;
14     memset(vis,0,sizeof(vis));
15     int num=0;
16     for(int i=1;i<=n;i++){
17         if(i+1<=n&&s[i]=='4'&&s[i+1]=='7'){
18             vis[i]=1;
19             num++;
20         }
21     }
22     //cout<<num<<endl;
23     if(num==0){
24         for(int i=1;i<=n;i++)
25             cout<<s[i];
26         cout<<endl;
27     }
28     else{
29         for(int i=1;i<=n;i++){
30             if(k==0)break;
31             if(vis[i]==1){
32                 if(i%2==0){
33                     if(s[i-1]=='4'){
34                         if(k%2==0)break;
35                         else{
36                             s[i]='7';
37                             break;
38                         }
39                     }
40                     else {k--;s[i]='7';vis[i]=0;}
41                 }
42                 else{
43                     if(s[i+2]=='7'){
44                         if(k%2==0)break;
45                         else{
46                             s[i+1]='4';
47                             break;
48                         }
49                     }
50                     else{k--;s[i+1]='4';vis[i]=0;}
51                 }
52             }
53         }
54     }
55     for(int i=1;i<=n;i++)
56         cout<<s[i];
57     cout<<endl;
58 }

 

 

 

 

 

 

溜了,去写别的了。

posted @ 2018-03-19 19:51  ZERO-  阅读(178)  评论(0编辑  收藏  举报