求助 75分
查看原帖
求助 75分
1136310
Departagain楼主2024/9/7 10:04
#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n, m;
    cin >> n >> m;
    int* fx = new int[n];
    string* name = new string[n];
    for (int i = 0; i < n; i++)
    {
        cin >> fx[i] >> name[i];
    }
    int index = 0;
    for (int i = 0; i < m; i++)
    {
        int op; int s;
        cin >> op ;
        cin >> s;
        //逆时针为顺序给出各个小人
        //其中 fx 0 表示朝向圈内,1表示朝向圈外
        //op 0 向左 1 向右
        //-=: 顺时针 00  11
        //+=    01 10
        if (op == fx[index])
        {
            index -= s;
        }
        else index += s;
       
        
       //解决圆圈问题 
        if (index <= 0 )
        {
            index += n;
        }
        else if (index > n)
        {
            index -= n;
        }
    }
    cout << name[index] << endl;

    return 0;
}
2024/9/7 10:04
加载中...