0x00 Link
-
Source
-AtCoder
-
Tag
-芝士水题
-
Time
- ∗ * ∗
0x01 Source Code
//
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define endl '\n'
#define IOS ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
struct A {
int x, y;
bool operator < (const A& in) const {
return x == in.x ? y < in.y : x < in.x ;
} // 比较方式不完整,会导致 st.find 误判为相等
};
set<A> st;
void solve() {
int n, m, h, k;
cin >> n >> m >> h >> k;
string s;
cin >> s;
for (int i = 1; i <= m; i++) {
int x, y;
cin >> x >> y;
st.insert((A){x, y});
}
int x = 0, y = 0;
for (int i = 0; i < n; i++) {
// cout << h << " ";
switch(s[i]) {
case 'R': x++; break; // switch 语法
case 'L': x--; break;
case 'U': y++; break;
case 'D': y--; break;
}
h--;
if (h < 0) {
cout << "No" << endl;
return ;
}
if (h < k && st.find((A){x, y}) != st.end()) {
h = k;
st.erase((A){x, y}); // 题目也没说清楚是不是只能用一次
}
// cout << h << " " << x << " " << y << " " << (st.find((A){x, y}) != st.end()) << endl;
}
cout << "Yes" << endl;
}
signed main() {
IOS
int t = 1;
// cin >> t;
while (t--) solve();
return 0;
}
0x10 Diagram
-
404
0x11 Reference
-
404
作者 | 乐意奥AI