第4个数据点错了,那位大佬help一下啊
查看原帖
第4个数据点错了,那位大佬help一下啊
719726
mazxqy楼主2023/5/17 14:09
#include<bits/stdc++.h>
using namespace std;
int n,m,ansxh;
string anszy;
struct little_people{
	int cx;
	string zy;
} as[1000005];
int main() {
//	freopen("P1563.in","r",stdin); freopen("P1563.out","w",stdout);
	cin>>n>>m;
	for (int i=1;i<=n;++i)
		cin>>as[i].cx>>as[i].zy;
	ansxh=1; anszy=as[1].zy;
	while (m--){
		int lr,gs;
		cin>>lr>>gs;
		gs%=n;
		if (lr == 1) { //to right
			if (as[ansxh].cx == 0){ //little_people inside
//				for (int i=1;i<=gs;++i){
//					if (ansxh == n)
//						ansxh=1;
//					else 
//						ansxh++;
//				} 
				if (gs > n-ansxh)
					ansxh=gs-n+ansxh;
				else if (gs <= n-ansxh)
					ansxh+=gs;
				anszy=as[ansxh].zy;
//				cout<<anszy<<endl;
			}
			else if (as[ansxh].cx == 1){ //little_people outside
//				for (int i=1;i<=gs;++i){
//					if (ansxh == 1)
//						ansxh=n;
//					else 
//						ansxh--;
//				}
				if (gs > ansxh)
					ansxh=n-gs+ansxh;
				else if (gs <= ansxh)
					ansxh-=gs;
				anszy=as[ansxh].zy;
//				cout<<anszy<<endl;
			}
		}
		else if (lr == 0){ //to left
			if (as[ansxh].cx == 0){ //little_people inside
//				for (int i=1;i<=gs;++i){
//					if (ansxh == 1)
//						ansxh=n;
//					else 
//						ansxh--;
//				}
				if (gs > ansxh)
					ansxh=n-gs+ansxh;
				else if (gs <= ansxh)
					ansxh-=gs;
				anszy=as[ansxh].zy;
//				cout<<anszy<<endl;
			}
			else if (as[ansxh].cx == 1){ //little_people outside
//				for (int i=1;i<=gs;++i){
//					if (ansxh == n)
//						ansxh=1;
//					else 
//						ansxh++;
//				}
				if (gs > n-ansxh)
					ansxh=gs-n+ansxh;
				else if (gs <= n-ansxh)
					ansxh+=gs;
				anszy=as[ansxh].zy;
//				cout<<anszy<<endl;
			}
		}
	}
	cout<<anszy;
   	return 0;
}
2023/5/17 14:09
加载中...