#include <bits/stdc++.h>
using namespace std;
#define ll long long
const int INF = 1e9;
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
int n; cin >> n;
vector<tuple<int, int, int, int>> arr(n);
for (int i = 0; i < n; i++) {
int x, y; cin >> x >> y;
y = INF - y;
char dir; cin >> dir;
arr[i] = {y, x, dir, i};
assert(dir == 'S' || dir == 'E');
}
map<int, stack<int>> hmap;
vector<bool> collide(n, false);
sort(arr.rbegin(), arr.rend());
for (auto [y, x, d, i]: arr) {
int line = x - y;
if (d == 'S') {
hmap[line].push(i);
}
else {
if (hmap[line].empty()) continue;
collide[i] = true;
collide[hmap[line].top()] = true;
hmap[line].pop();
}
}
for (int i = 0; i < n; i++) {
if (!collide[i]) cout << i+1 << "\n";
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |