90分,求大犇帮帮,QAQ
查看原帖
90分,求大犇帮帮,QAQ
867681
23_VS_24楼主2023/7/24 15:20
#include<bits/stdc++.h>
using namespace std;
struct student
{
	long long way;//朝向(0为圈内,1为圈外)
	string name;
};
struct order//指令
{
	long long toward;//(0代表往左第~个人,1代表往右第~个人)
	long long p;//指令人数
};
int main()
{
	int num=1;//记录最终答案的那个人的位置
	long long n;//人数
	long long m;//指令条数
	cin>>n>>m;
	student *a=new student[n+1];
	order *s=new order[m+1];
	for(int i=1;i<=n;i++)
	{
		cin>>a[i].way>>a[i].name;
	}
	for(int j=1;j<=m;j++)
	{
		cin>>s[j].toward>>s[j].p;
		s[num].p=s[num].p%n;
		if(a[num].way==0&&s[j].toward==0)//圈内往左数
		{
			num=(num+n-s[j].p)%n;
		}
		else if(a[num].way==0&&s[j].toward==1)//圈内往右数
		{
			num=(num+s[j].p)%n;		
		}
		else if(a[num].way==1&&s[j].toward==0)//圈外往左数
		{
			num=(num+s[j].p)%n;					
		}	
		else if(a[num].way==1&&s[j].toward==1)
		{
			num=(num+n-s[j].p)%n;		
		}						
	}
	cout<<a[num].name;
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	delete[] s;
	delete[] a;
	return 0;
}
2023/7/24 15:20
加载中...