10797 2024. 04. 14 11:34:50 Ablablabla Főnökszám cpp17 Hibás válasz 40/100 377ms 65908 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 20804 KiB
2 Hibás válasz 119ms 23224 KiB
subtask2 5/5
3 Elfogadva 10ms 21072 KiB
4 Elfogadva 10ms 21372 KiB
5 Elfogadva 10ms 21244 KiB
6 Elfogadva 18ms 21792 KiB
subtask3 0/10
7 Elfogadva 8ms 21880 KiB
8 Elfogadva 8ms 21976 KiB
9 Elfogadva 8ms 22264 KiB
10 Elfogadva 10ms 22452 KiB
11 Hibás válasz 10ms 22664 KiB
12 Elfogadva 10ms 22516 KiB
13 Elfogadva 14ms 22548 KiB
14 Elfogadva 16ms 22564 KiB
subtask4 10/10
15 Elfogadva 9ms 22504 KiB
16 Elfogadva 10ms 22580 KiB
17 Elfogadva 10ms 22776 KiB
18 Elfogadva 13ms 22996 KiB
19 Elfogadva 18ms 23172 KiB
20 Elfogadva 30ms 23500 KiB
21 Elfogadva 32ms 23500 KiB
22 Elfogadva 111ms 34876 KiB
subtask5 25/25
23 Elfogadva 9ms 23224 KiB
24 Elfogadva 9ms 23232 KiB
25 Elfogadva 12ms 23536 KiB
26 Elfogadva 14ms 23340 KiB
27 Elfogadva 64ms 24416 KiB
28 Elfogadva 97ms 25120 KiB
29 Elfogadva 119ms 25464 KiB
30 Elfogadva 119ms 25616 KiB
subtask6 0/50
31 Elfogadva 8ms 23476 KiB
32 Hibás válasz 119ms 25468 KiB
33 Elfogadva 10ms 21072 KiB
34 Elfogadva 10ms 21372 KiB
35 Elfogadva 10ms 21244 KiB
36 Elfogadva 18ms 21792 KiB
37 Elfogadva 8ms 21880 KiB
38 Elfogadva 8ms 21976 KiB
39 Elfogadva 8ms 22264 KiB
40 Elfogadva 10ms 22452 KiB
41 Hibás válasz 10ms 22664 KiB
42 Elfogadva 10ms 22516 KiB
43 Elfogadva 14ms 22548 KiB
44 Elfogadva 16ms 22564 KiB
45 Elfogadva 9ms 22504 KiB
46 Elfogadva 10ms 22580 KiB
47 Elfogadva 10ms 22776 KiB
48 Elfogadva 13ms 22996 KiB
49 Elfogadva 18ms 23172 KiB
50 Elfogadva 30ms 23500 KiB
51 Elfogadva 32ms 23500 KiB
52 Elfogadva 111ms 34876 KiB
53 Elfogadva 9ms 23224 KiB
54 Elfogadva 9ms 23232 KiB
55 Elfogadva 12ms 23536 KiB
56 Elfogadva 14ms 23340 KiB
57 Elfogadva 64ms 24416 KiB
58 Elfogadva 97ms 25120 KiB
59 Elfogadva 119ms 25464 KiB
60 Elfogadva 119ms 25616 KiB
61 Hibás válasz 16ms 23404 KiB
62 Hibás válasz 14ms 23412 KiB
63 Hibás válasz 13ms 23412 KiB
64 Elfogadva 61ms 29244 KiB
65 Hibás válasz 14ms 23420 KiB
66 Hibás válasz 14ms 23428 KiB
67 Hibás válasz 14ms 23676 KiB
68 Hibás válasz 14ms 23680 KiB
69 Hibás válasz 92ms 25992 KiB
70 Elfogadva 377ms 65908 KiB