#include <bits/stdc++.h>
using namespace std;
#define int long long
#define arr array
#define vec vector
#define pii pair<int, int>
#define fir first
#define sec second
const int N = 2e5 + 5;
int n;
arr<int, N> x, y;
arr<char, N> dr;
map<int, vec<pii>> dgn;
void dgn_cmp() {
for (int i = 1; i <= n; i++) {
dgn[x[i] + y[i]].push_back({x[i], i});
}
for (auto &x : dgn) {
sort(x.sec.begin(), x.sec.end());
}
// for (pair<int, vec<pii>> x : dgn) {
// cout << x.fir << ": ";
// for (pii z : x.sec) cout << z.sec << " ";
// cout << '\n';
// }
}
void ans_cmp() {
vec<int> ans;
for (pair<int, vec<pii>> x : dgn) {
vec<pii> y;
for (pii z : x.sec) {
if (y.size() && dr[y.back().sec] == 'E' && dr[z.sec] == 'S')
y.pop_back();
else
y.push_back(z);
}
for (pii z : y) ans.push_back(z.sec);
}
for (int i : ans) cout << i << '\n';
}
signed main() {
// freopen("in", "r", stdin);
cin >> n;
for (int i = 1; i <= n; i++) cin >> x[i] >> y[i] >> dr[i];
dgn_cmp();
ans_cmp();
}
# | 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... |