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;
}
}