10798 2024. 04. 14 11:39:15 Ablablabla Főnökszám cpp17 Elfogadva 100/100 384ms 65612 KiB
#include <bits/stdc++.h>

using namespace std;

const int MAXN = 2e5 + 5;

int akt = 0;
set<int> a;
multiset<int> b[MAXN];

void torol(int x, int y){
    auto it = a.lower_bound(x);
    while(it != a.begin()){
        it--;
        int ert = *it;
        auto itB = b[ert].begin();
        while(itB != b[ert].end() && *itB < y){
            akt--;
            itB = b[ert].erase(itB);
        }

        if(b[ert].empty()){
            a.erase(ert);
            it = a.lower_bound(x);
        } else{
            break;
        }
    }
}

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

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

int main()
{
    int n;
    cin >> n;

    vector<int> alapA(n), alapB(n), nyom(n);
    for(int i = 0; i < n; i++){
        cin >> alapA[i] >> alapB[i];

        nyom[i] = alapA[i];
    }

    sort(nyom.begin(), nyom.end());
    nyom.erase(unique(nyom.begin(), nyom.end()), nyom.end());

    for(int &x : alapA){
        x = lower_bound(nyom.begin(), nyom.end(), x) - nyom.begin();
    }


    for(int i = 0; i < n; i++){
        torol(alapA[i], alapB[i]);
        berak(alapA[i], alapB[i]);
        cout << akt << "\n";
    }
}
Részfeladat Összpont Teszt Verdikt Idő Memória
subtask1 0/0
1 Elfogadva 12ms 20536 KiB
2 Elfogadva 119ms 22948 KiB
subtask2 5/5
3 Elfogadva 10ms 21020 KiB
4 Elfogadva 9ms 21232 KiB
5 Elfogadva 9ms 21100 KiB
6 Elfogadva 18ms 21584 KiB
subtask3 10/10
7 Elfogadva 10ms 21672 KiB
8 Elfogadva 9ms 21640 KiB
9 Elfogadva 10ms 21780 KiB
10 Elfogadva 10ms 22072 KiB
11 Elfogadva 10ms 22172 KiB
12 Elfogadva 10ms 22268 KiB
13 Elfogadva 14ms 22480 KiB
14 Elfogadva 16ms 22604 KiB
subtask4 10/10
15 Elfogadva 9ms 22764 KiB
16 Elfogadva 10ms 22740 KiB
17 Elfogadva 10ms 22816 KiB
18 Elfogadva 10ms 22824 KiB
19 Elfogadva 18ms 23048 KiB
20 Elfogadva 30ms 23368 KiB
21 Elfogadva 30ms 23380 KiB
22 Elfogadva 111ms 34616 KiB
subtask5 25/25
23 Elfogadva 8ms 23028 KiB
24 Elfogadva 9ms 23028 KiB
25 Elfogadva 14ms 23104 KiB
26 Elfogadva 14ms 23020 KiB
27 Elfogadva 63ms 24164 KiB
28 Elfogadva 97ms 24764 KiB
29 Elfogadva 118ms 25284 KiB
30 Elfogadva 120ms 25308 KiB
subtask6 50/50
31 Elfogadva 9ms 23196 KiB
32 Elfogadva 125ms 25360 KiB
33 Elfogadva 10ms 21020 KiB
34 Elfogadva 9ms 21232 KiB
35 Elfogadva 9ms 21100 KiB
36 Elfogadva 18ms 21584 KiB
37 Elfogadva 10ms 21672 KiB
38 Elfogadva 9ms 21640 KiB
39 Elfogadva 10ms 21780 KiB
40 Elfogadva 10ms 22072 KiB
41 Elfogadva 10ms 22172 KiB
42 Elfogadva 10ms 22268 KiB
43 Elfogadva 14ms 22480 KiB
44 Elfogadva 16ms 22604 KiB
45 Elfogadva 9ms 22764 KiB
46 Elfogadva 10ms 22740 KiB
47 Elfogadva 10ms 22816 KiB
48 Elfogadva 10ms 22824 KiB
49 Elfogadva 18ms 23048 KiB
50 Elfogadva 30ms 23368 KiB
51 Elfogadva 30ms 23380 KiB
52 Elfogadva 111ms 34616 KiB
53 Elfogadva 8ms 23028 KiB
54 Elfogadva 9ms 23028 KiB
55 Elfogadva 14ms 23104 KiB
56 Elfogadva 14ms 23020 KiB
57 Elfogadva 63ms 24164 KiB
58 Elfogadva 97ms 24764 KiB
59 Elfogadva 118ms 25284 KiB
60 Elfogadva 120ms 25308 KiB
61 Elfogadva 16ms 23496 KiB
62 Elfogadva 14ms 23392 KiB
63 Elfogadva 13ms 23648 KiB
64 Elfogadva 61ms 29216 KiB
65 Elfogadva 14ms 23580 KiB
66 Elfogadva 14ms 23520 KiB
67 Elfogadva 14ms 23516 KiB
68 Elfogadva 14ms 23520 KiB
69 Elfogadva 94ms 25580 KiB
70 Elfogadva 384ms 65612 KiB