#include <bits/stdc++.h>
#define int long long
using namespace std;
using pii = pair<int, int>;
using t3i = tuple<int, int, int>;
struct Ship {
int x, y, dx, dy;
char dir;
bool ok;
Ship(int x, int y, char dir) : x(x), y(y), dir(dir), ok(1) {
switch (dir) {
case 'N': dx = 0, dy = -1; break;
case 'E': dx = 1, dy = 0; break;
case 'W': dx = -1, dy = 0; break;
case 'S': dx = 0, dy = 1; break;
}
}
};
signed main() {
ios_base::sync_with_stdio(0); cin.tie(0);
int n;
cin >> n;
vector<Ship> a;
map<int, vector<pii>> mp;
for (int i = 0; i < n; i++) {
int x, y;
char dir;
cin >> x >> y >> dir;
a.emplace_back(x, y, dir);
mp[x + y].emplace_back(x, i);
}
for (auto [_, v] : mp) {
sort(v.begin(), v.end());
stack<int> st;
for (auto [_, i] : v) {
if (a[i].dir == 'E') {
st.push(i);
} else {
if (!st.empty()) {
a[i].ok = 0;
a[st.top()].ok = 0;
st.pop();
}
}
}
}
for (int i = 0; i < n; i++) {
if (a[i].ok) {
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... |