35分求助,样例过!
查看原帖
35分求助,样例过!
640477
biophitma_wby楼主2023/5/2 20:08
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n,m;
struct circle{
	ll toward;
	string name;
}s[100010];
int main(){
	cin>>n>>m;
	for(ll i=1;i<=n;i++){
		cin>>s[i].toward>>s[i].name;
	}
	ll now_people=1,f=s[1].toward;
	for(ll i=1;i<=m;i++){
		//cout<<s[now_people].name<<endl;
		int a,b;cin>>a>>b;
		if(f==0){
			if(a==0){
				if(now_people-b<0){
					now_people=n-(b-now_people);
					f=s[now_people].toward;
				}
				else{
					now_people=now_people-b;
					f=s[now_people].toward;
				}
			}
			if(a==1){
				if(now_people+b>n){
					now_people=1+(b-(n-now_people));
					f=s[now_people].toward;
				}
				else{
					now_people=now_people+b;
					f=s[now_people].toward;
				}
			}
			
		}else{
			if(a==1){
				if(now_people-b<0){
					now_people=n-(b-now_people);
					f=s[now_people].toward;
				}
				else{
					now_people=now_people-b;
					f=s[now_people].toward;
				}
			}
			if(a==0){
				if(now_people+b>n){
					now_people=1+(b-(n-now_people));
					f=s[now_people].toward;
				}
				else{
					now_people=now_people+b;
					f=s[now_people].toward;
				}
			}
		}
		cout<<s[now_people].name<<endl;
	}
	cout<<s[now_people].name;
	return 0;
} 

2023/5/2 20:08
加载中...