这题随便模拟一下就好了。

注意细节。

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
int read(){
    int t=1,num=0;
    char c=getchar();
    while(c>'9'||c<'0'){if(c=='-')t=-1;c=getchar();}
    while(c>='0'&&c<='9'){num=num*10+c-'0';c=getchar();}
    return num*t;
}
const int mn=100010;
char c[mn][12];
int fx[mn],n,m,a,b,now=1;
int main()
{
    n=read();m=read();
    for(int i=1;i<=n;i++){
        if(read()==0)fx[i]=1;
        else fx[i]=-1;
        scanf("%s",c[i]);
    }
    for(int i=1;i<=m;i++){
        if(read()==1)a=1;
        else a=-1;
        b=read()*fx[now]*a;
        now+=b;
        if(now<=0)now+=n;
        else if(now>n)now-=n;
    }
    printf("%s",c[now]);
    return 0;
}

本文由Yzyet编写,网址为www.cnblogs.com/Yzyet。非Yzyet同意,禁止转载,侵权者必究。

posted on 2017-05-14 13:34  Yzyet  阅读(278)  评论(0编辑  收藏  举报