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. 计算阶乘n!末尾0的个数

    一.问题描述 给定一个正整数n,请计算n的阶乘n!末尾所含有“0”的个数.例如: 5!=120,其末尾所含有的“0”的个数为1: 10!= 3628800,其末尾所含有的“0”的个数为2: 20!= ...

  2. [转][工地][存]Oracle触发器死锁问题解决

    摘自http://blog.itpub.net/12932950/viewspace-607691/ 这两天一直在因为系统初期设计原因导致的一个触发器问题.问题如下:有表T,有客户编号.账户编号及地址 ...

  3. 剑指offer系列55---最小的k个数

    [题目] 输入n个整数,找出其中最小的K个数.例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,. *[思路]排序,去除k后的数. package com.exe11 ...

  4. UDP socket 设置为的非阻塞模式

    UDP socket 设置为的非阻塞模式 Len = recvfrom(SocketFD, szRecvBuf, sizeof(szRecvBuf), MSG_DONTWAIT, (struct so ...

  5. 纯js上传控件——fineuploader

    fineuploader是一款基于ajax实现文件上传的插件,具有以下有点: A:支持文件上传进度显示. B:文件拖拽浏览器上传方式 C:Ajax页面无刷新. D:多文件上传. F:跨浏览器. E:跨 ...

  6. 正则表达式(BREs,EREs,PREs)差异比较

    我想各位也和我一样,再linux下使用grep,egrep, awk , sed, vi的搜索时,会经常搞不太清楚,哪此特殊字符得使用转义字符'\' ..   哪些不需要, grep与egrep的差异 ...

  7. Java heap dump触发和分析(转)

    为了分析java应用的内存泄漏,使用thread dump往往解决不了问题.使用jstat[eg:jstat-gcutil pid 1000 5]工具查看运行的java应用的heap size,per ...

  8. SpringMVC4.0.3 @ResponseBody JSON 中文乱码问题

    @RequestMapping(value="listUserJson.html",produces="text/html;charset=UTF-8") @R ...

  9. SecureCRT自动记录日志【记录键入的所有命令和打印的结果信息】

  10. sublime运行c++快捷建修改

    打开preferences->key bingings -user 输入 [ {"keys": ["f9"], "command": ...