社区讨论

90求助,问题出在哪里o((⊙﹏⊙))o

P1563[NOIP 2016 提高组] 玩具谜题参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@lo3165vj
此快照首次捕获于
2023/10/23 23:06
2 年前
此快照最后确认于
2023/10/23 23:06
2 年前
查看原帖
CPP
#include <bits/stdc++.h>
using namespace std;
#define x first
#define y second
int n,m;
typedef pair<int,string> PII;
const int N=1e5+10;
PII q[N];
int left(int pos,int dist){
	return (pos+n-dist)%n;
}
int right(int pos,int dist){
	return (pos+dist)%n;
}
int main()
{
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		cin>>q[i].x>>q[i].y;
	}
	int pos=1;
	while(m--){
		int dir,dis;
		scanf("%d %d",&dir,&dis);
		//0内,1外,0左,1右 
		if(!q[pos].x&&!dir) pos=left(pos,dis);
		else if(q[pos].x&&!dir) pos=right(pos,dis);
		else if(!q[pos].x&&dir) pos=right(pos,dis);
		else if(q[pos].x&&dir) pos=left(pos,dis); 
	}
	cout<<q[pos].y<<endl;
	return 0;
}

回复

0 条回复,欢迎继续交流。

正在加载回复...