求助,90分
查看原帖
求助,90分
126053
qqqevinxxz楼主2020/7/29 22:03
#include<bits/stdc++.h>
using namespace std;
const int MAXN=1e6+100; 
int n,m; 
struct node
{
	int turn;
	string name;
}p[MAXN];
int a[MAXN],s[MAXN]; 
int main()
{
	cin>>n>>m;
	for(int i=1;i<=n;i++) cin>>p[i].turn>>p[i].name;
	for(int i=1;i<=m;i++) cin>>a[i]>>s[i];
	int cnt=1;
	for(int i=1;i<=m;i++)
	{
		if(a[i]==0&&p[cnt].turn==0) cnt=(n+cnt-s[i])%n;
		else if(a[i]==0&&p[cnt].turn==1) cnt=(cnt+s[i])%n;
		else if(a[i]==1&&p[cnt].turn==0) cnt=(cnt+s[i])%n;
		else if(a[i]==1&&p[cnt].turn==1) cnt=(n+cnt-s[i])%n;
	}
	cout<<p[cnt].name<<endl;
 	return 0;
}

但为什么就改了一小下就过了

#include<bits/stdc++.h>
using namespace std;
const int MAXN=1e6+100; 
int n,m; 
struct node
{
	int turn;
	string name;
}p[MAXN];
int a[MAXN],s[MAXN]; 
int main()
{
	cin>>n>>m;
	for(int i=0;i<n;i++) cin>>p[i].turn>>p[i].name;
	for(int i=0;i<m;i++) cin>>a[i]>>s[i];
	int cnt=0;
	for(int i=0;i<m;i++)
	{
		if(a[i]==0&&p[cnt].turn==0) cnt=(n+cnt-s[i])%n;
		else if(a[i]==0&&p[cnt].turn==1) cnt=(cnt+s[i])%n;
		else if(a[i]==1&&p[cnt].turn==0) cnt=(cnt+s[i])%n;
		else if(a[i]==1&&p[cnt].turn==1) cnt=(n+cnt-s[i])%n;
	}
	cout<<p[cnt].name<<endl;
 	return 0;
}
2020/7/29 22:03
加载中...