```cpp
代码如下:
#include<iostream>
#include<cstdio>
#include<string>
#include<cmath>
using namespace std;
int a[100005],b[100005];
struct people{
int lo; //lo表示位置
string name;
}s[100005];
int caozuo(int x);//自定义操作函数
int n,m,pos=1; //pos用于记下位置
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
{
cin>>s[i].lo>>s[i].name;
}
for(int i=1;i<=m;i++)
{
cin>>a[i]>>b[i];
}
for(int i=1;i<=m;i++)
{
caozuo(i);
}
cout<<s[pos].name;
return 0;
}
int caozuo(int x)
{
if(a[x]==s[pos].lo)//a[x]表示向左还是向右
{
pos=n-b[x]+pos;//b[x]表示位移个数
while(pos>n)
{
pos=pos-n;
}
while(pos<=0)
{
pos=pos+n;
}
}
else if(a[x]!=s[pos].lo)
{
pos=pos+b[x];
while(pos+b[x]>n)
{
pos=pos-n;
}
}
}
```
cin>>n>>m;
for(int i=1;i<=n;i++)
{
cin>>s[i].lo>>s[i].name;
}
for(int i=1;i<=m;i++)
{
cin>>a[i]>>b[i];
}
for(int i=1;i<=m;i++)
{
caozuo(i);
}
cout<<s[pos].name;
return 0;
}
int caozuo(int x)
{
if(a[x]==s[pos].lo)//a[x]表示向左还是向右
{
pos=n-b[x]+pos;//b[x]表示位移个数
while(pos>n)
{
pos=pos-n;
}
while(pos<=0)
{
pos=pos+n;
}
}
else if(a[x]!=s[pos].lo)
{
pos=pos+b[x];
while(pos+b[x]>n)
{
pos=pos-n;
}
}
}
by 清歌’ @ 2018-07-15 16:32:39
我并不觉得有人能看懂
重新发一遍吧
by everdream @ 2018-07-15 16:33:08
@[Quanta](/space/show?uid=82722)
```cpp
代码如下:
#include<iostream>
#include<cstdio>
#include<string>
#include<cmath>
using namespace std;
int a[100005],b[100005];
struct people{
int lo; //lo表示位置
string name;
}s[100005];
int caozuo(int x); //自定义操作函数
int n,m,pos=1; //pos用于记下位置
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
{
cin>>s[i].lo>>s[i].name;
}
for(int i=1;i<=m;i++)
{
cin>>a[i]>>b[i];
}
for(int i=1;i<=m;i++)
{
caozuo(i);
}
cout<<s[pos].name;
return 0;
}
int caozuo(int x)
{
if(a[x]==s[pos].lo)//a[x]表示向左还是向右
{
pos=n-b[x]+pos;//b[x]表示位移个数
while(pos>n)
{
pos=pos-n;
}
while(pos<=0)
{
pos=pos+n;
}
}
else if(a[x]!=s[pos].lo)
{
pos=pos+b[x];
while(pos+b[x]>n)
{
pos=pos-n;
}
}
}
```
by 清歌’ @ 2018-07-15 16:34:31
@[清歌’](/space/show?uid=87378)
//lo表示位置
这一句改成
lo表示朝向
by 清歌’ @ 2018-07-15 16:37:15