输入的第一行包含两个正整数 n, m,表示玩具小人的个数和指令的条数。i
接下来 n 行,每行包含一个整数和一个字符串,以逆时针为顺序给出每个玩具小人的朝向和职业。其中 0 表示朝向圈内,1 表示朝向圈外。保证不会出现其他的数。字符串长度不超过 10 且仅由小写字母构成,字符串不为空,并且字符串两两不同。整数和字符串之问用一个空格隔开。
接下来 m 行,其中第 i 行包含两个整数 a
, si
,表示第 i 条指令。若 ai
= 0,表示向左数 si
个人;若 ai
= 1,表示向右数 si
个人。保证 ai
不会出现其他的数。1 ≤ si
< n。
输出一个字符串,表示从第一个读入的小人开始,依次数完 m 条指令后到达的小人的职业。
1 ≤ n, m ≤ 100000
#include<iostream> using namespace std; typedef struct { char name[20]; int type; }stu; int main() { int m,n,i; cin>>m>>n; stu peo[m]; for(i=0;i<m;i++) { cin>>peo[i].type>>peo[i].name; } int a,b; int j=0; while(n--) { cin>>a>>b; if(peo[j].type==0) { if(a==1) { j = (j+b)%m; } else { j = (m+j-b)%m; } } else { if(a==0) { j = (j+b)%m; } else { j = (m+j-b)%m; } } } cout<<peo[j].name; return 0; }
原文:https://www.cnblogs.com/miliye/p/10164454.html