107062024-04-10 09:42:49szilFőnökszámcpp17Elfogadva 100/100275ms66028 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ÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva8ms20688 KiB
2Elfogadva70ms23476 KiB
subtask25/5
3Elfogadva10ms21092 KiB
4Elfogadva9ms21044 KiB
5Elfogadva9ms21356 KiB
6Elfogadva14ms21876 KiB
subtask310/10
7Elfogadva8ms21760 KiB
8Elfogadva10ms22060 KiB
9Elfogadva10ms21916 KiB
10Elfogadva10ms22300 KiB
11Elfogadva10ms22492 KiB
12Elfogadva9ms22780 KiB
13Elfogadva13ms22728 KiB
14Elfogadva13ms23036 KiB
subtask410/10
15Elfogadva10ms22880 KiB
16Elfogadva9ms23036 KiB
17Elfogadva10ms22936 KiB
18Elfogadva12ms23084 KiB
19Elfogadva14ms23364 KiB
20Elfogadva20ms23852 KiB
21Elfogadva19ms23808 KiB
22Elfogadva71ms34724 KiB
subtask525/25
23Elfogadva8ms23140 KiB
24Elfogadva10ms23148 KiB
25Elfogadva12ms23448 KiB
26Elfogadva13ms23584 KiB
27Elfogadva39ms24572 KiB
28Elfogadva54ms25440 KiB
29Elfogadva68ms25832 KiB
30Elfogadva67ms25916 KiB
subtask650/50
31Elfogadva10ms23280 KiB
32Elfogadva70ms25824 KiB
33Elfogadva10ms21092 KiB
34Elfogadva9ms21044 KiB
35Elfogadva9ms21356 KiB
36Elfogadva14ms21876 KiB
37Elfogadva8ms21760 KiB
38Elfogadva10ms22060 KiB
39Elfogadva10ms21916 KiB
40Elfogadva10ms22300 KiB
41Elfogadva10ms22492 KiB
42Elfogadva9ms22780 KiB
43Elfogadva13ms22728 KiB
44Elfogadva13ms23036 KiB
45Elfogadva10ms22880 KiB
46Elfogadva9ms23036 KiB
47Elfogadva10ms22936 KiB
48Elfogadva12ms23084 KiB
49Elfogadva14ms23364 KiB
50Elfogadva20ms23852 KiB
51Elfogadva19ms23808 KiB
52Elfogadva71ms34724 KiB
53Elfogadva8ms23140 KiB
54Elfogadva10ms23148 KiB
55Elfogadva12ms23448 KiB
56Elfogadva13ms23584 KiB
57Elfogadva39ms24572 KiB
58Elfogadva54ms25440 KiB
59Elfogadva68ms25832 KiB
60Elfogadva67ms25916 KiB
61Elfogadva14ms23648 KiB
62Elfogadva14ms23508 KiB
63Elfogadva13ms23508 KiB
64Elfogadva41ms29128 KiB
65Elfogadva14ms23508 KiB
66Elfogadva12ms23808 KiB
67Elfogadva12ms24028 KiB
68Elfogadva13ms23928 KiB
69Elfogadva59ms26460 KiB
70Elfogadva275ms66028 KiB