UVA 1610 Party Games(构造)

分析:分情况讨论太复杂。可以从每个字母下手,从‘A’开始构造,讨论下特殊情况即可

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <map>
#include <vector>
#define FRER() freopen("in.txt","r",stdin)
#define FREW() freopen("out.txt","w",stdout)
#define go int T;cin>>T;while(T--)
using namespace std;
vector<string>s;
string s1,s2;
string s0;
void fun(){
    s0.clear();
    int i = 0;
    while(1){
        s0 = s0+'A';
        while(s0[i]<s1[i]) s0[i]++;
        if(s1<=s0&&s0<s2) return;
        if(s1[i]!='Z'){
            s0[i]++;
            if(s1<=s0&&s0<s2) return;
            else{
                s0[i]--;
            }
        }
        i++;
    }
}
int main(){
    //FRER();
    //FREW();
    int n;
    while(cin>>n&&n){
        s.clear();
        for(int i=0;i<n;i++){
            string ss;
            cin>>ss;
            s.push_back(ss);
        }
        sort(s.begin(), s.end());
        s1 = s[n/2-1];
        s2 = s[n/2];
        //cout<<s1<<" "<<s2<<endl;
        fun();
        cout<<s0<<endl;
        
    }
}

 

posted @ 2019-01-16 17:46  dslybyme7  阅读(98)  评论(0编辑  收藏  举报