Party Games
You've been invited to a party. The host wants to divide the guests into 2 teams for
party games, with exactly the same number of guests on each team. She wants to be
able to tell which guest is on which team as she greets them as they arrive, and as easily
as possible, without having to take the time to look up each guest's name on a list. Being
a good computer scientist, you have an idea: give her a single string, and all she has to
do is determine whether the guest's name is alphabetically less than or greater than
that string.
Given the unique names of n party guests (n is even), find the shortest possible string S
such that exactly half the names are less than or equal to S, and exactly half are greater
than S. If there’s more than one string of the shortest length, output the one that comes
first alphabetically.
Input
There will be multiple test cases in the input. Each test case will begin with an even
integer n (2≤n≤1,000) on its own line. On the next n lines will be names, one per line.
Each name will be a single word consisting only of capital letters, and will be at least one
letter and no longer than 30 letters. All of the names in a test case will be unique. The
input will end with a 0 on its own line.
Output
For each case, output the alphabetically first of all of the shortest possible strings that
your host could use to separate her guests. Output this string using all upper case
letters. Do not output any spaces. Do not put a blank line between outputs.

Sample Input
4
FRED
SAM
JOE
MARGARET
2
FRED
FREDDIE
2
JOSEPHINE
JERRY
0

Sample Input
4
FRED
SAM
JOE
MARGARET
2
FRED
FREDDIE
2
JOSEPHINE
JERRY
0

2012  Southeast USA Regional Programming Contest

http://acm.hunnu.edu.cn/online/?action=problem&type=show&id=11397

题意:

串A,串B ,寻找串C ,s.t.   A<=C<B 且满足C.length最小 。

也就是2个指针的应用,值得一做的试题。

#include <iostream>
#include <stdio.h>
#include <queue>
#include <stdio.h>
#include <string.h>
#include <vector>
#include <queue>
#include <set>
#include <algorithm>
#include <map>
#include <stack>
#include <math.h>
#define Max(a,b) ((a)>(b)?(a):(b))
#define Min(a,b) ((a)<(b)?(a):(b))
using namespace std ;
typedef long long LL ;
const int N_size= ;
struct Stu{
char name[N_size] ;
friend bool operator < (Stu A ,Stu B){
return strcmp(A.name,B.name)< ;
}
};
Stu stu[] ;
int N ;
string gao(){
string A ,B ;
string ans ;
char ans_char[N_size] ;
A=string(stu[N/].name) ;
B=string(stu[N/+].name) ;
int i= ;
int j= ;
while(i<A.length()&&j<B.length()){
if(A[i]==B[j]){
ans_char[i]=A[i] ;
i++ ;
j++ ;
}
else{
ans_char[i]=A[i] ;
ans_char[i+]='\0' ;
ans=string(ans_char) ;
if(A<=ans&&ans<B)
return ans ; if(A[i]<'Z'){
ans_char[i]=A[i]+ ;
ans_char[i+]='\0' ;
ans=string(ans_char) ;
if(A<=ans&&ans<B)
return ans ;
}
ans_char[i]=A[i] ;
i++ ;
j++ ;
}
}
if(i==A.length())
return A ;
for(j=i;j<A.length();j++){
ans_char[j]=A[j] ;
ans_char[j+]='\0' ;
ans=string(ans_char) ;
if(A<=ans&&ans<B)
return ans ;
if(A[j]<'Z'){
ans_char[j]=A[j]+ ;
ans_char[j+]='\0' ;
ans=string(ans_char) ;
if(A<=ans&&ans<B)
return ans ;
}
ans_char[j]=A[j] ;
}
}
int main(){
while(scanf("%d",&N)&&N){
for(int i=;i<=N;i++)
scanf("%s",stu[i].name) ;
sort(stu+,stu++N) ;
cout<<gao()<<endl ;
}
return ;
}

Party Games的更多相关文章

  1. Unity性能优化(3)-官方教程Optimizing garbage collection in Unity games翻译

    本文是Unity官方教程,性能优化系列的第三篇<Optimizing garbage collection in Unity games>的翻译. 相关文章: Unity性能优化(1)-官 ...

  2. Unity性能优化(4)-官方教程Optimizing graphics rendering in Unity games翻译

    本文是Unity官方教程,性能优化系列的第四篇<Optimizing graphics rendering in Unity games>的翻译. 相关文章: Unity性能优化(1)-官 ...

  3. Learning in Two-Player Matrix Games

    3.2 Nash Equilibria in Two-Player Matrix Games For a two-player matrix game, we can set up a matrix ...

  4. (转) Playing FPS games with deep reinforcement learning

    Playing FPS games with deep reinforcement learning 博文转自:https://blog.acolyer.org/2016/11/23/playing- ...

  5. Favorite Games

    Samurai II: Vengeance: http://www.madfingergames.com/games

  6. CF456D A Lot of Games (字典树+DP)

    D - A Lot of Games CF#260 Div2 D题 CF#260 Div1 B题 Codeforces Round #260 CF455B D. A Lot of Games time ...

  7. GDC2016 Epic Games【Bullet Train】 新风格的VR-FPS的制作方法

    追求“舒适”和“快感”的VR游戏设计方法   http://game.watch.impress.co.jp/docs/news/20160318_749016.html     [Bullet Tr ...

  8. Supercell only provide the best games for players

    Supercell only provide the best games for players Supercell start to change all, Supercell's first t ...

  9. 读书笔记2014第6本:《The Hunger Games》

    以前从未读过一本完整的英文小说,所有就在今年的读书目标中增加了一本英文小说,但在头四个月内一直没有下定决定读哪一本.一次偶然从SUN的QQ空间中看到Mockingjay,说是不错的英文小说,好像已经是 ...

  10. [codeforces 325]B. Stadium and Games

    [codeforces 325]B. Stadium and Games 试题描述 Daniel is organizing a football tournament. He has come up ...

随机推荐

  1. windows证书地址

    C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys 用certutil -sto ...

  2. 25. Reverse Nodes in k-Group

    Given a linked list, reverse the nodes of a linked list k at a time and return its modified list. If ...

  3. UIActivityIndicatorView添加到UIButton上并响应事件

    spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewSty ...

  4. Apache+php在windows下的安装和配置

    下载和配置php   下载php:http://windows.php.net/download/  php-5.4.16-Win32-VC9-x86.zip  下载apache: http://ht ...

  5. Flash AS 响应双击事件MouseEvent.DOUBLE_CLICK

    没想到在WinForm简简单单的一个问题,在AS里会成为一个坑. 我遇到的这个问题是由于Loader没有设置doubleClickEnabled=true而导致的. 因此出现这个问题,请思考是否由于此 ...

  6. ThreadPoolExecutor使用介绍

    private static ExecutorService exec = new ThreadPoolExecutor(8, 8, 0L,TimeUnit.MILLISECONDS, new Lin ...

  7. OAF_OAF Exception Handling异常处理(概念)

    2014-06-12 Created By BaoXinjian

  8. HDU 3652 B-number(数位dp)

    题意:B数的定义是有字符串“13”且能被整数13整除的数,求[1,n]内的B数个数. 题解:这是数位DP,我也就是刚入门,前两天看到了非递归写法,好麻烦.所以我建议写dfs的方法,容易理解,代码还简短 ...

  9. tcpdump学习

    #直接启动tcpdump将监视第一个网络接口上所有流过的数据包 -n不解析地址到nametcpdump -n #监视指定网络接口的数据包,不指定则为 eth0tcpdump -i eth1 #监视指定 ...

  10. Studio-----快捷键大全

    Ctrl+Alt+Space 类名或接口名提示; 补充布局的提示: 26. Ctrl+Alt+Space是类名自动完成 Ctrl+X 删除行 Ctrl+D 复制行 Alt+回车 导入包,自动修正 Cr ...