异或处理bool型:
两个bool影响同一bool型结果,且任意变化 => 属性=!属性
可得出可用异或处理
以下代码
#include<bits/stdc++.h>
using namespace std;
struct er{
bool isout;
string name;
};
int main(){
int n,m;
cin>>n>>m;
er tem[n];
for(int i=0;i<n;i++)
cin>>tem[i].isout>>tem[i].name;
int p=0;
for(int i=0;i<m;i++)
{
bool isrig;
int len;
cin>>isrig>>len;
p=(p+(isrig^tem[p].isout?1:-1)*len)%n;
if(p<0)p+=n;
}
cout<<tem[p].name<<endl;
return 0;
}