求助大神,困扰已久的一道题
  • 板块灌水区
  • 楼主CHENYUSON
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/7/12 09:53
  • 上次更新2024/7/12 11:07:36
查看原帖
求助大神,困扰已久的一道题
1123373
CHENYUSON楼主2024/7/12 09:53

题目描述

抢座位游戏相信大家都不陌生。在游戏中,n位同学围绕n-1个椅子伴随着音乐慢慢移动。当音乐结束的时候,每个人都要尽自己所能去“抢”坐一个位子。那位没有抢到位子的同学会被淘汰出局。 现在我们要去模拟这样的一个游戏场景:我们会给你一个游戏参赛者名单,按照同学的初始顺序给出。

例如:”Jack Zhang”,”Alice Wang”,”Zack”。以换行符作为分割。 同时也会给你一个长度为n的字符串(仅包含’.’和’h’),’.’表示该位置处没有椅子,’h’表示该位置处有椅子。

例如:hh.h

音乐结束后,假如一位同学在’.’处,那么这位同学将会被淘汰。

现在已知有n位同学,以名字(字符串)的方式给出他们的初始顺序和描述座椅情况的字符串。每过1秒,每位同学都会向前进一个位置。例如,当前时刻有四位同学“a”, “b”, “c”,“d”,1秒之后,他们的位置会变为“d”,“a”,“b”,“c”。在第s秒末音乐结束,请你求出那位被淘汰的同学,并输出他的名字。

输入

输入文件名为 chair.in。

输入第一行为一个正整数n,表示有n位同学

接下来n行,每行一个字符串,表示第i位同学的名字 第n+2行有一个长度为n的字符串,仅包含’h’和’.’,描述座位情况。数据保证仅有1个字符为’.’其它字符均为’h’

第n+3行为一个自然数s,表示在s秒之后音乐将会结束

输出

输出文件名为 chair.out。

输出共 1 行,输出一个字符串,表示被淘汰同学的名字

样例输入

4

Emma Sue

Billy Bob Thornton

Joe

Cassius Clay

hh.h

1

样例输出

Billy Bob Thornton

提示

【输入输出样例2】

样例输入

6

Jack Dempsey

Joe Louis

Rocky Marciano

Cassius Clay

George Foreman

Mike Tyson

h.hhhh

500

样例输出 Mike Tyson

【数据范围】 对于100%的数据 1 ≤ n , len(namei) ≤ 50,0 ≤ s ≤ 600****

以下是我的代码:


#include<bits/stdc++.h>
using namespace std;
int main(){
	long long int n;
	scanf("%d",&n);
	getchar();
	string names[n]={};
	string chair;
	for(long long int i=0;i<n;i++){
		getline(cin,names[i]);
	}
	getline(cin,chair);
	int s;
	scanf("%d",&s);
	int e = chair.find(".");
	e = e+((0-s)%n);
	if(e<0){
		e+=n;
	}
	cout<<names[e];
}

有些测试点通过不了,不知道怎么回事。有大神帮忙看看吗?

2024/7/12 09:53
加载中...