Submission #1211937

#TimeUsernameProblemLanguageResultExecution timeMemory
1211937yanbNaval battle (CEOI24_battle)C++20
30 / 100
156 ms31472 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...