Party Games
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的更多相关文章
- Unity性能优化(3)-官方教程Optimizing garbage collection in Unity games翻译
本文是Unity官方教程,性能优化系列的第三篇<Optimizing garbage collection in Unity games>的翻译. 相关文章: Unity性能优化(1)-官 ...
- Unity性能优化(4)-官方教程Optimizing graphics rendering in Unity games翻译
本文是Unity官方教程,性能优化系列的第四篇<Optimizing graphics rendering in Unity games>的翻译. 相关文章: Unity性能优化(1)-官 ...
- 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 ...
- (转) Playing FPS games with deep reinforcement learning
Playing FPS games with deep reinforcement learning 博文转自:https://blog.acolyer.org/2016/11/23/playing- ...
- Favorite Games
Samurai II: Vengeance: http://www.madfingergames.com/games
- 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 ...
- GDC2016 Epic Games【Bullet Train】 新风格的VR-FPS的制作方法
追求“舒适”和“快感”的VR游戏设计方法 http://game.watch.impress.co.jp/docs/news/20160318_749016.html [Bullet Tr ...
- 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 ...
- 读书笔记2014第6本:《The Hunger Games》
以前从未读过一本完整的英文小说,所有就在今年的读书目标中增加了一本英文小说,但在头四个月内一直没有下定决定读哪一本.一次偶然从SUN的QQ空间中看到Mockingjay,说是不错的英文小说,好像已经是 ...
- [codeforces 325]B. Stadium and Games
[codeforces 325]B. Stadium and Games 试题描述 Daniel is organizing a football tournament. He has come up ...
随机推荐
- Window下Nexus私服搭建
项目组大部分人员不能访问maven的central repository,因此在局域网里找一台有外网权限的机器,搭建nexus私服,然后开发人员连到这台私服上 环境是:nexus-2.1.1.mav ...
- NodeJS的异步编程风格
NodeJS的异步编程风格 http://www.infoq.com/cn/news/2011/09/nodejs-async-code NodeJS运行环境因其支持Javascript语言和异步编程 ...
- 文件压缩与挤压ZIP
/// <summary> /// Zip压缩与解压缩 /// </summary> public class ZipHelper { /// <summary> ...
- 【转】 SQL 2005 try catch
1 TRY…CATCH 1.1 用法 TRY…CATCH的语法如下: BEGIN TRY -- TRY 模块 -- 业务处理 END TRY BEGIN CATCH -- CATC ...
- 安装配置Oracle数据库时的一些处理思路
配置Oralce客户端或者服务器端出现问题时,可考虑如下步骤: 1 检查如下文件:client端:D:\app\Administrator\product\11.2.0\client_3\networ ...
- 4. 对list进行sort
一. sort命令 sort命令可以对list排序 sort命令把字段转先换为double类型在进行比较 sort排序list 127.0.0.1:6379> lrange list2 0 -1 ...
- c++builder6.0 mdi窗体+自定义子窗体
- [CSS]去除inline-block元素间距的几种方法
当我们使用inline-block 时,会出现空白间距问题. 但这些间距对我们的布局,或兼容性产生影响,我们需要去除它,该怎么办?下面简单介绍几种方法: 1.去掉html元素之间的空格,直接写在一行. ...
- 最大熵的Java实现
这是一个最大熵的简明Java实现,提供训练与预测接口.训练采用GIS训练算法,附带示例训练集.本文旨在介绍最大熵的原理.分类和实现,不涉及公式推导或其他训练算法,请放心食用. 最大熵理论 简介 最大熵 ...
- 3. Windows根据端口查进程---ADB 相关报错 ADB server didn't ACK cannot bind ':5037'
1.ADB server didn't ACK,一般报ADB相关的错误,大部分是端口被占用了 处理方法: 在命令行输入>adb nodaemon server 如果返回: cannot bind ...