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