107982024-04-14 11:39:15AblablablaFőnökszámcpp17Elfogadva 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";
    }
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva12ms20536 KiB
2Elfogadva119ms22948 KiB
subtask25/5
3Elfogadva10ms21020 KiB
4Elfogadva9ms21232 KiB
5Elfogadva9ms21100 KiB
6Elfogadva18ms21584 KiB
subtask310/10
7Elfogadva10ms21672 KiB
8Elfogadva9ms21640 KiB
9Elfogadva10ms21780 KiB
10Elfogadva10ms22072 KiB
11Elfogadva10ms22172 KiB
12Elfogadva10ms22268 KiB
13Elfogadva14ms22480 KiB
14Elfogadva16ms22604 KiB
subtask410/10
15Elfogadva9ms22764 KiB
16Elfogadva10ms22740 KiB
17Elfogadva10ms22816 KiB
18Elfogadva10ms22824 KiB
19Elfogadva18ms23048 KiB
20Elfogadva30ms23368 KiB
21Elfogadva30ms23380 KiB
22Elfogadva111ms34616 KiB
subtask525/25
23Elfogadva8ms23028 KiB
24Elfogadva9ms23028 KiB
25Elfogadva14ms23104 KiB
26Elfogadva14ms23020 KiB
27Elfogadva63ms24164 KiB
28Elfogadva97ms24764 KiB
29Elfogadva118ms25284 KiB
30Elfogadva120ms25308 KiB
subtask650/50
31Elfogadva9ms23196 KiB
32Elfogadva125ms25360 KiB
33Elfogadva10ms21020 KiB
34Elfogadva9ms21232 KiB
35Elfogadva9ms21100 KiB
36Elfogadva18ms21584 KiB
37Elfogadva10ms21672 KiB
38Elfogadva9ms21640 KiB
39Elfogadva10ms21780 KiB
40Elfogadva10ms22072 KiB
41Elfogadva10ms22172 KiB
42Elfogadva10ms22268 KiB
43Elfogadva14ms22480 KiB
44Elfogadva16ms22604 KiB
45Elfogadva9ms22764 KiB
46Elfogadva10ms22740 KiB
47Elfogadva10ms22816 KiB
48Elfogadva10ms22824 KiB
49Elfogadva18ms23048 KiB
50Elfogadva30ms23368 KiB
51Elfogadva30ms23380 KiB
52Elfogadva111ms34616 KiB
53Elfogadva8ms23028 KiB
54Elfogadva9ms23028 KiB
55Elfogadva14ms23104 KiB
56Elfogadva14ms23020 KiB
57Elfogadva63ms24164 KiB
58Elfogadva97ms24764 KiB
59Elfogadva118ms25284 KiB
60Elfogadva120ms25308 KiB
61Elfogadva16ms23496 KiB
62Elfogadva14ms23392 KiB
63Elfogadva13ms23648 KiB
64Elfogadva61ms29216 KiB
65Elfogadva14ms23580 KiB
66Elfogadva14ms23520 KiB
67Elfogadva14ms23516 KiB
68Elfogadva14ms23520 KiB
69Elfogadva94ms25580 KiB
70Elfogadva384ms65612 KiB