제출 #1183020

#제출 시각아이디문제언어결과실행 시간메모리
1183020gygNaval battle (CEOI24_battle)C++20
30 / 100
226 ms28600 KiB
#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 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...