답안 #944519

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
944519 2024-03-12T21:04:55 Z vladilius Advertisement 2 (JOI23_ho_t2) C++17
59 / 100
19 ms 2396 KB
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using pii = pair<int, int>;

struct node{
    int x, e;
};

int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    
    int n; cin>>n;
    vector<node> t(n + 1);
    for (int i = 1; i <= n; i++){
        cin>>t[i].x>>t[i].e;
    }
    auto cmp = [&](node a, node b){
        return (a.e >= b.e);
    };
    sort(t.begin() + 1, t.end(), cmp);
    vector<int> d(n + 1), s(n + 1);
    for (int i = 1; i <= n; i++){
        d[i] = t[i].e - t[i].x;
        s[i] = t[i].e + t[i].x;
    }
    set<pii> s1, s2;
    for (int i = 1; i <= n; i++){
        s1.insert({d[i], i});
        s2.insert({s[i], i});
    }
    int out = 0;
    for (int i = 1; i <= n; i++){
        if (s1.empty() || s1.find({d[i], i}) == s1.end()){
            continue;
        }
        // xj <= xi and d[j] <= d[i]
        // xj > xi and s[j] <= s[i]
        vector<int> rem;
        if (!s1.empty()){
            auto it = s1.begin();
            while (it != s1.end()){
                auto [a, j] = *it;
                if (a > d[i]) break;
                if (t[j].x > t[i].x){
                    it++;
                    continue;
                }
                rem.push_back(j);
                it++;
            }
        }
        if (!s2.empty()){
            auto it = s2.begin();
            while (it != s2.end()){
                auto [a, j] = *it;
                if (a > s[i]) break;
                if (t[j].x < t[i].x){
                    it++;
                    continue;
                }
                rem.push_back(j);
                it++;
            }
        }
        for (int j: rem){
            if (!s1.empty()){
                auto it = s1.find({d[j], j});
                if (it != s1.end()) s1.erase(it);
            }
            if (!s2.empty()){
                auto it = s2.find({s[j], j});
                if (it != s2.end()) s2.erase(it);
            }
        }
        out++;
    }
    cout<<out<<"\n";
}
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB Output is correct
2 Runtime error 19 ms 2396 KB Execution killed with signal 11
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 0 ms 348 KB Output is correct
8 Correct 0 ms 348 KB Output is correct
9 Correct 0 ms 344 KB Output is correct
10 Correct 0 ms 348 KB Output is correct
11 Correct 0 ms 348 KB Output is correct
12 Correct 0 ms 348 KB Output is correct
13 Correct 0 ms 348 KB Output is correct
14 Correct 0 ms 348 KB Output is correct
15 Correct 0 ms 344 KB Output is correct
16 Correct 0 ms 348 KB Output is correct
17 Correct 0 ms 348 KB Output is correct
18 Correct 1 ms 344 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 0 ms 348 KB Output is correct
8 Correct 0 ms 348 KB Output is correct
9 Correct 0 ms 344 KB Output is correct
10 Correct 0 ms 348 KB Output is correct
11 Correct 0 ms 348 KB Output is correct
12 Correct 0 ms 348 KB Output is correct
13 Correct 0 ms 348 KB Output is correct
14 Correct 0 ms 348 KB Output is correct
15 Correct 0 ms 344 KB Output is correct
16 Correct 0 ms 348 KB Output is correct
17 Correct 0 ms 348 KB Output is correct
18 Correct 1 ms 344 KB Output is correct
19 Correct 1 ms 348 KB Output is correct
20 Correct 1 ms 348 KB Output is correct
21 Correct 2 ms 348 KB Output is correct
22 Correct 1 ms 348 KB Output is correct
23 Correct 1 ms 540 KB Output is correct
24 Correct 1 ms 348 KB Output is correct
25 Correct 1 ms 348 KB Output is correct
26 Correct 1 ms 348 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB Output is correct
2 Runtime error 19 ms 2396 KB Execution killed with signal 11
3 Halted 0 ms 0 KB -