求助 95
查看原帖
求助 95
337753
xzy15326682521楼主2020/6/15 17:29
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
struct node
{
    ll flag,dir;
    char name[50];
}s[100100];

ll n,m,i,j,td=1,dir,dis;
ll walk(ll td,ll dir,ll dis)
{
    if(s[td].dir==0)
    {
        if(dir==0)
        {
            td=td-dis;
            if(td<=0) td=n-((-td)%n);
        }
        else
        {
            td=td+dis;
            td=td%n;
        }
    }
    else
    {
        if(dir==0)
        {
            td=td+dis;
            td=td%n;
        }
        else
        {
            td=td-dis;
            if(td<=0) td=n-((-td)%n);
        }
    }
    return td;
}
int main()
{

    cin>>n>>m;
    for(i=1;i<=n;i++)
    {
        cin>>s[i].dir;
        cin>>s[i].name;
        s[i].flag=i;
    }


    for(i=1;i<=m;i++)
    {
        cin>>dir>>dis;
        td=walk(td,dir,dis);
    }

    if(n!=1)
    {
        cout<<s[td].name<<endl;
    }
    else
    {
        cout<<s[1].name<<endl;
    }

    return 0;
}
2020/6/15 17:29
加载中...