一般的做法就是写一堆if,但是由于题目中的限制比较多,所以陷阱也很多,很容易漏掉一些情况
这里我们采用暴力的方法去实现
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 #include <bits/stdc++.h> 2 using namespace std; 3 4 int n, k, cnt; 5 string s0, s1, s2; 6 7 int main(){ 8 while(cin >> n && n){ 9 vector<string> str; 10 k = n/2; 11 while(n--){ 12 cin >> s0; 13 str.push_back(s0); 14 } 15 sort(str.begin(), str.end()); 16 s1 = str[k-1]; 17 s2 = str[k]; 18 s0 = ""; 19 cnt= 0; 20 while(1){ 21 s0 += "A"; 22 while(s0 < s1 && s0[cnt] != 'Z') s0[cnt]++; 23 if(s0 >= s2) s0[cnt]--; 24 if(s0 < s2 && s0 >= s1) break; 25 cnt++; 26 } 27 cout << s0 << endl; 28 } 29 return 0; 30 }