0分求调
查看原帖
0分求调
1069285
Sutong123楼主2024/12/28 15:27
#include <bits/stdc++.h>
using namespace std;
int n, m;
struct info {
	int f; // 方向, 0 = 内, 1 = 外
	char s[15]; // 名字
} a[1000100];
struct did {
	int rl; // 左右 , 0 = 左, 1 = 右
	int id; // 个数
} s[1000100];
int main() {
    cin >> n >> m;
    for (int i = 1; i <= n; i++)
		cin >> a[n - i + 1].f >> a[n - i + 1].s + 1;
	for (int i = 1; i <= m; i++)
		cin >> s[i].rl >> s[i].id;
	int p = 1; // 目前位置
	for (int i = 1; i <= m; i++) {
		if (s[i].rl == 0 && a[i].f == 0) {
			p += s[i].id;
			if (p > n)
				p %= n;
		}
		else if (s[i].rl == 1 && a[i].f == 0) {
			p -= s[i].id;
			if (p < 0)
				p += n;
		}
		else if (s[i].rl == 1 && a[i].f == 1) {
			p += s[i].id;
			if (p > n)
				p %= n;
		}
		else if (s[i].rl == 0 && a[i].f == 1) {
			p -= s[i].id;
			if (p < 0)
				p += n;
		}
		if (p == 0)
			p = n;
	}
	int l = strlen (a[p].s + 1);
	for (int i = 1; i <= l; i++)
		cout << a[p].s[i];
	cout << endl;
    return 0;
}

2024/12/28 15:27
加载中...