最关键的是循环序列的定位
查看原帖
最关键的是循环序列的定位
1650212
LY2345678楼主2025/2/7 16:42
#include<iostream>
#include<map>
#include<string>
#include<vector>
using namespace std;
int main() {
	int n, m; cin >> n >> m;

	vector<pair<int,string>>people(n);
	for (int i = 0; i < n; i++){
		cin >> people[i].first >> people[i].second;
	}

	//数组存储指令左右和距离
	vector<int>direction(m);
	vector<int>distance(m);
	for (int i = 0; i < m; i++) {
		cin >> direction[i] >> distance[i];
	}

	int now = 0;
	for (int i = 0; i < m; i++) {
		//异或计算,异或为1时顺时针,反之逆时针
		if (people[now].first ^ direction[i]) {
			now = (now + distance[i]) % n;
		}
		else {
			now = (now - distance[i] + n) % n;
		}
	}
	
	cout << people[now].second << endl;
}
2025/2/7 16:42
加载中...