• Party Games UVA


    好难得调试!!!!!!

     1 #include<set>
     2 #include<cstdio>
     3 #include<string>
     4 #include<cstring>
     5 #include<iostream>
     6 #include<algorithm>
     7 using namespace std;
     8 
     9 string s[1005];
    10 
    11 int main()
    12 {   int n;
    13     while(cin>>n&&n){
    14         string a,b,c;
    15         for(int i=0;i<n;i++) cin>>s[i];
    16         sort(s,s+n);
    17         a=s[n/2-1],b=s[n/2];
    18         
    19         int la=a.size(),lb=b.size(),i;
    20         int L=min(la,lb);
    21         bool flag=true;
    22         for(i=0;i<L;i++){
    23             if(a[i]<b[i]){
    24                 flag=false;
    25                 break;
    26             }
    27             c=c+a[i];
    28         }
    29         if(flag) cout<<c<<endl;
    30         else{
    31             if(la>lb){
    32                 if(i==lb-1){
    33                     if(b[i]-a[i]!=1) c=c+(++a[i]);
    34                     else{
    35                         c=c+a[i];
    36                         if(i==la-2) c=c+a[i+1];
    37                         else{
    38                             while(a[++i]=='Z'){
    39                                 c=c+a[i];
    40                                 if(i==la-1) break;
    41                             }
    42                             if(i==la-1){
    43                                 if(a[i]!='Z') c=c+a[i];
    44                             }
    45                             else c=c+(++a[i]);
    46                         }
    47                     }
    48                 }
    49                 else{
    50                     if(b[i]-a[i]==1) c=c+b[i];
    51                     else c=c+(++a[i]);
    52                 }
    53             }
    54             if(la<=lb){
    55                 if(i==la-1) c=c+a[i];
    56                 else c=c+(++a[i]);
    57             }
    58             cout<<c<<endl;
    59         }    
    60     }
    61     return 0;
    62 }

     正解:

    枚举a串的长度,然后在枚举的串尾添加一个字符使满足大小关系.

     1 #include<set>
     2 #include<cstdio>
     3 #include<string>
     4 #include<cstring>
     5 #include<iostream>
     6 #include<algorithm>
     7 using namespace std;
     8 
     9 string s[1005];
    10 
    11 int main()
    12 {   int n;
    13     while(cin>>n&&n){
    14         string a,b,tem;
    15         for(int i=0;i<n;i++) cin>>s[i];
    16         sort(s,s+n);
    17         a=s[n/2-1],b=s[n/2];
    18         
    19         int cur=0;
    20         bool flag=true;
    21         while(flag){
    22             for(int i=0;i<26;i++){
    23                 tem=a.substr(0,cur);
    24                 tem+=i+'A';
    25                 if(tem>=a&&tem<b){
    26                     flag=false;
    27                     break;
    28                 }
    29             }
    30             cur++;
    31         }
    32         cout<<tem<<endl;
    33     }
    34     return 0;
    35 }
  • 相关阅读:
    每日一练leetcode
    每日一练leetcode
    每日一练 leetcode
    每日一练leetcode
    每日一练leetcode
    leetcode每日一练
    BigDecimal类 定义及用法
    每日一练leetcode
    每日一练leetcode
    字符串表达式校验&求值(C#实现) 附代码
  • 原文地址:https://www.cnblogs.com/zgglj-com/p/7264179.html
Copyright © 2020-2023  润新知