首页 > 学院 > 开发设计 > 正文

聚会游戏 Party Games

2019-11-06 06:03:57
字体:
来源:转载
供稿:网友

这题主要要注意细节问题,特别是排序后a[n/2]的长度>a[n/2+1]的情况和有后面有Z的情况

下面给个用来调试的样例:

INPUT:

2

ABC

ABB

2

ABC

ABBA

2

ABC

ABBZAB

2

ABBZZA

ABC

0

OUTPUT:

ABB

ABBA

ABBZB

ABBZZA

//紫书P253聚会游戏//Serene#include<algorithm>#include<iostream>#include<cstring>#include<cstdlib>#include<string>#include<cstdio>#include<cmath>using namespace std;const int maxn=1000+10;int n;string a[maxn],hh;int main() {	scanf("%d",&n);getline(cin,hh);	bool fl=0;	string l,r;int pos,minsize;	while(n) {		for(int i=1;i<=n;++i) getline(cin,a[i]);		sort(a+1,a+n+1);fl=0;		l=a[n/2];r=a[n/2+1];		pos=0;minsize=min(l.size(),r.size());		while(l[pos]==r[pos]&&pos<minsize) {			PRintf("%c",l[pos]);			pos++;		}		if(pos>=l.size()-1) {			if(pos==l.size()-1)printf("%c",l[pos]);			printf("/n");			scanf("%d",&n);			getline(cin,hh);continue;		}		if(pos==r.size()-1&&l[pos]==r[pos]-1) {			printf("%c",l[pos]);//l的pos这一位+1就和r一样了 			pos++;		}		for(pos;pos<l.size()-1;pos++) 		if(l[pos]!='Z'){			 printf("%c",l[pos]+1);			 fl=1;break;		}		else printf("Z");		if(!fl) printf("%c",l[l.size()-1]);		printf("/n");		scanf("%d",&n);getline(cin,hh);	}	return 0;}


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表