#include <bits/stdc++.h>
using namespace std;
#define fast ios::sync_with_stdio(0);cin.tie(0)
typedef long long ll;
#define f first
#define s second
#define LOGN 21
const ll MOD = 1e9 + 7;
const ll MAXN = 1e5 + 100;
vector< pair<pair<int,int>,int> > S, E;
map< int, vector<pair<pair<int,int>, pair<char,int>>> > mp;
int main() {
fast;
int N;
cin >> N;
for (int i = 1; i <= N; i++) {
int x, y; char ch;
cin >> x >> y >> ch;
if (ch == 'E')
E.push_back({{x, y}, i});
else
S.push_back({{x, y}, i});
}
for (auto u : E)
mp[u.f.f + u.f.s].push_back({u.f, {'E', u.s}});
for (auto u : S)
mp[u.f.f + u.f.s].push_back({u.f, {'S', u.s}});
for (auto u : mp) {
sort(mp[u.f].begin(), mp[u.f].end());
queue<int> q;
for (auto u : mp[u.f]) {
if (u.s.f == 'E')
q.push(u.s.s);
else if (q.size())
q.pop();
else
cout << u.s.s << "\n";
}
while (!q.empty()) {
cout << q.front() << "\n";
q.pop();
}
}
}
# | 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... |