107982024-04-14 11:39:15AblablablaFőnökszámcpp17Accepted 100/100384ms65612 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";
    }
}
SubtaskSumTestVerdictTimeMemory
subtask10/0
1Accepted12ms20536 KiB
2Accepted119ms22948 KiB
subtask25/5
3Accepted10ms21020 KiB
4Accepted9ms21232 KiB
5Accepted9ms21100 KiB
6Accepted18ms21584 KiB
subtask310/10
7Accepted10ms21672 KiB
8Accepted9ms21640 KiB
9Accepted10ms21780 KiB
10Accepted10ms22072 KiB
11Accepted10ms22172 KiB
12Accepted10ms22268 KiB
13Accepted14ms22480 KiB
14Accepted16ms22604 KiB
subtask410/10
15Accepted9ms22764 KiB
16Accepted10ms22740 KiB
17Accepted10ms22816 KiB
18Accepted10ms22824 KiB
19Accepted18ms23048 KiB
20Accepted30ms23368 KiB
21Accepted30ms23380 KiB
22Accepted111ms34616 KiB
subtask525/25
23Accepted8ms23028 KiB
24Accepted9ms23028 KiB
25Accepted14ms23104 KiB
26Accepted14ms23020 KiB
27Accepted63ms24164 KiB
28Accepted97ms24764 KiB
29Accepted118ms25284 KiB
30Accepted120ms25308 KiB
subtask650/50
31Accepted9ms23196 KiB
32Accepted125ms25360 KiB
33Accepted10ms21020 KiB
34Accepted9ms21232 KiB
35Accepted9ms21100 KiB
36Accepted18ms21584 KiB
37Accepted10ms21672 KiB
38Accepted9ms21640 KiB
39Accepted10ms21780 KiB
40Accepted10ms22072 KiB
41Accepted10ms22172 KiB
42Accepted10ms22268 KiB
43Accepted14ms22480 KiB
44Accepted16ms22604 KiB
45Accepted9ms22764 KiB
46Accepted10ms22740 KiB
47Accepted10ms22816 KiB
48Accepted10ms22824 KiB
49Accepted18ms23048 KiB
50Accepted30ms23368 KiB
51Accepted30ms23380 KiB
52Accepted111ms34616 KiB
53Accepted8ms23028 KiB
54Accepted9ms23028 KiB
55Accepted14ms23104 KiB
56Accepted14ms23020 KiB
57Accepted63ms24164 KiB
58Accepted97ms24764 KiB
59Accepted118ms25284 KiB
60Accepted120ms25308 KiB
61Accepted16ms23496 KiB
62Accepted14ms23392 KiB
63Accepted13ms23648 KiB
64Accepted61ms29216 KiB
65Accepted14ms23580 KiB
66Accepted14ms23520 KiB
67Accepted14ms23516 KiB
68Accepted14ms23520 KiB
69Accepted94ms25580 KiB
70Accepted384ms65612 KiB