95分#4想知道哪里错了,求调(有注释在线等)
查看原帖
95分#4想知道哪里错了,求调(有注释在线等)
1545314
Westbrook_楼主2025/1/26 12:30
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
struct person{//结构体存储小人面朝方向和名字 
	int pos;
	string name;
}a[N];
int main(){
	int n,m,anspos=1;//anspos是最终答案的位置,从第一个小人开始,所以是anspos=1 
	cin>>n>>m;
	for(int i=1;i<=n;i++)
		cin>>a[i].pos>>a[i].name;//输入 
	for(int i=1;i<=m;i++){
		int p,s;
		cin>>p>>s;
		if(p==a[anspos].pos){//如果小人面向方位和指令方位一样 
			anspos-=s;//就顺时针找 
			if(anspos<0)//如果找完是负数就+n 
			anspos+=n;
		}
		else if(p!=a[anspos].pos){//不一样 
			anspos+=s;//逆时针找 
			if(anspos>n)//如果找完比n还大九-n 
			anspos-=n;
		}
   }
	for(int i=1;i<=n;i++){//再遍历一边,如果找到就输出 
		if(i==anspos){
			cout<<a[i].name;
			return 0;
		}
	}
}

2025/1/26 12:30
加载中...