题解:P14736 [ICPC 2021 Seoul R] Find the House
P14736 题解
思路
用 map 存储每个位置的移动指令,从起点开始,每次:
- 查找当前位置
(i, j, k) 指令 - 按方向
j 移动k 个单位 - 删除该指令
重复
n 次后得到最终位置
代码
#include <bits/stdc++.h>
using namespace std;
int main() {
int n; cin >> n;
map<int, pair<char, int>> m;
for(int i = 0; i < n; i++) {
int p, k; char d;
cin >> p >> d >> k;
m[p] = {d, k};
}
int cur; cin >> cur;
for(int i = 0; i < n; i++) {
auto [d, k] = m[cur];
m.erase(cur);
cur += (d == 'L') ? -k : k;
}
cout << cur;
return 0;
}