这题随便模拟一下就好了。
注意细节。
#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同意,禁止转载,侵权者必究。