10706 2024. 04. 10 09:42:49 szil Főnökszám cpp17 Elfogadva 100/100 275ms 66028 KiB
#include <bits/stdc++.h>

using namespace std;
using ll = long long;

const int MAXN = 200'001;

set<int> a;
multiset<int> b[MAXN];
int vx[MAXN], vy[MAXN];
int curr = 0;

void del(int x, int y) {
    auto it = a.lower_bound(x);
    while (it != a.begin()) {
        it--;
        int val = *it;
        auto it2 = b[val].begin();
        while (it2 != b[val].end() && (*it2) < y) {
            curr--;
            it2 = b[val].erase(it2);
        }
        if (b[val].empty()) {
            a.erase(val);
            it = a.lower_bound(x);
        } else {
            break;
        }
    }
}

void insert(int x, int y) {
    curr++;
    a.insert(x);
    b[x].insert(y);
}

void add(int x, int y) {
    auto it = a.upper_bound(x);
    if (it == a.end()) {
        insert(x, y);
    } else {
        int val = *it;
        if ((*b[*it].rbegin()) <= y) {
            insert(x, y);
        }
    }
}

int main() {
    ios::sync_with_stdio(0); cin.tie(0);
    int n; cin >> n;
    vector<int> comp;
    for (int i = 1; i <= n; i++) {
        cin >> vx[i] >> vy[i];
        comp.emplace_back(vx[i]);
    }
    sort(comp.begin(), comp.end());
    comp.erase(unique(comp.begin(), comp.end()), comp.end());
    for (int i = 1; i <= n; i++) vx[i] = lower_bound(comp.begin(), comp.end(), vx[i])-comp.begin();
    for (int i = 1; i <= n; i++) {
        del(vx[i], vy[i]);
        add(vx[i], vy[i]);
        cout << curr << "\n";
    }
    return 0;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
subtask1 0/0
1 Elfogadva 8ms 20688 KiB
2 Elfogadva 70ms 23476 KiB
subtask2 5/5
3 Elfogadva 10ms 21092 KiB
4 Elfogadva 9ms 21044 KiB
5 Elfogadva 9ms 21356 KiB
6 Elfogadva 14ms 21876 KiB
subtask3 10/10
7 Elfogadva 8ms 21760 KiB
8 Elfogadva 10ms 22060 KiB
9 Elfogadva 10ms 21916 KiB
10 Elfogadva 10ms 22300 KiB
11 Elfogadva 10ms 22492 KiB
12 Elfogadva 9ms 22780 KiB
13 Elfogadva 13ms 22728 KiB
14 Elfogadva 13ms 23036 KiB
subtask4 10/10
15 Elfogadva 10ms 22880 KiB
16 Elfogadva 9ms 23036 KiB
17 Elfogadva 10ms 22936 KiB
18 Elfogadva 12ms 23084 KiB
19 Elfogadva 14ms 23364 KiB
20 Elfogadva 20ms 23852 KiB
21 Elfogadva 19ms 23808 KiB
22 Elfogadva 71ms 34724 KiB
subtask5 25/25
23 Elfogadva 8ms 23140 KiB
24 Elfogadva 10ms 23148 KiB
25 Elfogadva 12ms 23448 KiB
26 Elfogadva 13ms 23584 KiB
27 Elfogadva 39ms 24572 KiB
28 Elfogadva 54ms 25440 KiB
29 Elfogadva 68ms 25832 KiB
30 Elfogadva 67ms 25916 KiB
subtask6 50/50
31 Elfogadva 10ms 23280 KiB
32 Elfogadva 70ms 25824 KiB
33 Elfogadva 10ms 21092 KiB
34 Elfogadva 9ms 21044 KiB
35 Elfogadva 9ms 21356 KiB
36 Elfogadva 14ms 21876 KiB
37 Elfogadva 8ms 21760 KiB
38 Elfogadva 10ms 22060 KiB
39 Elfogadva 10ms 21916 KiB
40 Elfogadva 10ms 22300 KiB
41 Elfogadva 10ms 22492 KiB
42 Elfogadva 9ms 22780 KiB
43 Elfogadva 13ms 22728 KiB
44 Elfogadva 13ms 23036 KiB
45 Elfogadva 10ms 22880 KiB
46 Elfogadva 9ms 23036 KiB
47 Elfogadva 10ms 22936 KiB
48 Elfogadva 12ms 23084 KiB
49 Elfogadva 14ms 23364 KiB
50 Elfogadva 20ms 23852 KiB
51 Elfogadva 19ms 23808 KiB
52 Elfogadva 71ms 34724 KiB
53 Elfogadva 8ms 23140 KiB
54 Elfogadva 10ms 23148 KiB
55 Elfogadva 12ms 23448 KiB
56 Elfogadva 13ms 23584 KiB
57 Elfogadva 39ms 24572 KiB
58 Elfogadva 54ms 25440 KiB
59 Elfogadva 68ms 25832 KiB
60 Elfogadva 67ms 25916 KiB
61 Elfogadva 14ms 23648 KiB
62 Elfogadva 14ms 23508 KiB
63 Elfogadva 13ms 23508 KiB
64 Elfogadva 41ms 29128 KiB
65 Elfogadva 14ms 23508 KiB
66 Elfogadva 12ms 23808 KiB
67 Elfogadva 12ms 24028 KiB
68 Elfogadva 13ms 23928 KiB
69 Elfogadva 59ms 26460 KiB
70 Elfogadva 275ms 66028 KiB