码迷,mamicode.com
首页 > 其他好文 > 详细

UVa 1610 - Party Games

时间:2018-01-21 01:13:19      阅读:264      评论:0      收藏:0      [点我收藏+]

标签:class   pre   一半   sort   lan   大于   最小   i++   dex   

链接:

https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4485

 

题意:

输入一个n(2≤n≤1000,n是偶数)个字符串的集合D,找一个长度最短的字符串(不一定在D中出现)S,
使得D中恰好一半串小于等于S,另一半串大于S。如果有多解,输出字典序最小的解。
例如,对于{JOSEPHINE, JERRY},输出JF;对于{FRED, FREDDIE},输出FRED。

 

分析:

细节处理一下即可。
本题容易想复杂,或者把细节想错。我看到网上很多人的代码都比较复杂,其实不用那么复杂。。。

 

代码:

 1 #include <iostream>
 2 #include <string>
 3 #include <algorithm>
 4 using namespace std;
 5 
 6 int main(){
 7     int n;
 8     string s[1000+5];
 9     while(cin >> n && n){
10         for(int i = 0; i < n; i++) cin >> s[i];
11         sort(s, s + n);
12 
13         string f = s[n/2-1], b = s[n/2], j;
14         for(int i = 0; f[i]; i++){
15             j += f[i];
16             if(f <= j && j < b) break;
17             if(j[i] < Z){
18                 j[i]++;
19                 if(b > j) break;
20                 else j[i]--;
21             }
22         }
23         cout << j << endl;
24     }
25     return 0;
26 }

 

UVa 1610 - Party Games

标签:class   pre   一半   sort   lan   大于   最小   i++   dex   

原文地址:https://www.cnblogs.com/hkxy125/p/8322403.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!