题目传送门
这道题实在是一道水题
话不多说,上代码
#include<iostream>
#include<cstring>
using namespace std;
struct a{
int io;//in朝里 out朝外 小人的朝向
string name;//小人的名字
int number;//角色编号
}a[100000];
int main(){
int n, m;
cin >> n >> m;
for(int i = 1;i <= n;i++){
cin >> a[i].io >> a[i].name;
a[i].number = i;
}
int id = 1;
for(int i = 1;i <= m;i++){
int ch, num;
cin >> ch >> num;
if(a[i].io == ch){
id -= num;
if(id < 0){
id += n;
}
}
else{
id += num;
if(id > n){
id -= n;
}
}
}
cout << a[id].name;
return 0;
}
第一次
后来我调试了一下
#include<iostream>
#include<cstring>
using namespace std;
struct a{
bool b;
string name;
}x[100005];
int main(){
int n, m, f, s;
cin >> n >> m;
int now = 1;
for(int i = 1;i <= n;i++){
cin >> x[i].b >> x[i].name;
}
for(int i = 1;i <= m;i++){
cin >> f >> s;
if(f == x[now].b){
now -=s;
if(now <= 0){
now += n;
}
}
else{
now += s;
if(now > n){
now -= n;
}
}
}
cout << x[now].name;
return 0;
}
第二次