107972024-04-14 11:34:50AblablablaFőnökszámcpp17Hibás válasz 40/100377ms65908 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
1Elfogadva12ms20804 KiB
2Hibás válasz119ms23224 KiB
subtask25/5
3Elfogadva10ms21072 KiB
4Elfogadva10ms21372 KiB
5Elfogadva10ms21244 KiB
6Elfogadva18ms21792 KiB
subtask30/10
7Elfogadva8ms21880 KiB
8Elfogadva8ms21976 KiB
9Elfogadva8ms22264 KiB
10Elfogadva10ms22452 KiB
11Hibás válasz10ms22664 KiB
12Elfogadva10ms22516 KiB
13Elfogadva14ms22548 KiB
14Elfogadva16ms22564 KiB
subtask410/10
15Elfogadva9ms22504 KiB
16Elfogadva10ms22580 KiB
17Elfogadva10ms22776 KiB
18Elfogadva13ms22996 KiB
19Elfogadva18ms23172 KiB
20Elfogadva30ms23500 KiB
21Elfogadva32ms23500 KiB
22Elfogadva111ms34876 KiB
subtask525/25
23Elfogadva9ms23224 KiB
24Elfogadva9ms23232 KiB
25Elfogadva12ms23536 KiB
26Elfogadva14ms23340 KiB
27Elfogadva64ms24416 KiB
28Elfogadva97ms25120 KiB
29Elfogadva119ms25464 KiB
30Elfogadva119ms25616 KiB
subtask60/50
31Elfogadva8ms23476 KiB
32Hibás válasz119ms25468 KiB
33Elfogadva10ms21072 KiB
34Elfogadva10ms21372 KiB
35Elfogadva10ms21244 KiB
36Elfogadva18ms21792 KiB
37Elfogadva8ms21880 KiB
38Elfogadva8ms21976 KiB
39Elfogadva8ms22264 KiB
40Elfogadva10ms22452 KiB
41Hibás válasz10ms22664 KiB
42Elfogadva10ms22516 KiB
43Elfogadva14ms22548 KiB
44Elfogadva16ms22564 KiB
45Elfogadva9ms22504 KiB
46Elfogadva10ms22580 KiB
47Elfogadva10ms22776 KiB
48Elfogadva13ms22996 KiB
49Elfogadva18ms23172 KiB
50Elfogadva30ms23500 KiB
51Elfogadva32ms23500 KiB
52Elfogadva111ms34876 KiB
53Elfogadva9ms23224 KiB
54Elfogadva9ms23232 KiB
55Elfogadva12ms23536 KiB
56Elfogadva14ms23340 KiB
57Elfogadva64ms24416 KiB
58Elfogadva97ms25120 KiB
59Elfogadva119ms25464 KiB
60Elfogadva119ms25616 KiB
61Hibás válasz16ms23404 KiB
62Hibás válasz14ms23412 KiB
63Hibás válasz13ms23412 KiB
64Elfogadva61ms29244 KiB
65Hibás válasz14ms23420 KiB
66Hibás válasz14ms23428 KiB
67Hibás válasz14ms23676 KiB
68Hibás válasz14ms23680 KiB
69Hibás válasz92ms25992 KiB
70Elfogadva377ms65908 KiB