10800 2024. 04. 14 11:47:24 Ablablabla Telefonközpont cpp17 Elfogadva 100/100 152ms 8996 KiB
#include <bits/stdc++.h>

using namespace std;

struct segTree{
    int meret = 1;
    vector<int> fa;

    void meretez(int n){
        while(meret < n){
            meret *= 2;
        }

        fa.assign(2 * meret - 1, 0);
    }

    int epit(int a, int b, int ind){
        if(a == b){
            return fa[ind];
        }

        int k = (a + b) / 2;
        return fa[ind] = max(epit(a, k, 2 * ind + 1), epit(k + 1, b, 2 * ind + 2));
    }

    int keres(int a, int b, int ind, int kezd, int veg){
        if(veg < a || b < kezd){
            return 0;
        } else if(kezd <= a && b <= veg){
            return fa[ind];
        }

        int k = (a + b) / 2;

        return max(keres(a, k, 2 * ind + 1, kezd, veg), keres(k + 1, b, 2 * ind + 2, kezd, veg));
    }
};

int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);

    int m, n, q;
    cin >> m >> n >> q;

    vector<int> helyek(m + 1);
    for(int i = 0; i < n; i++){
        int a, b;
        cin >> a >> b;
        a--;

        helyek[a]++;
        helyek[b]--;
    }

    segTree fa;
    fa.meretez(m);
    int akt = 0;
    for(int i = 0; i < m; i++){
        akt += helyek[i];
        fa.fa[i + fa.meret - 1] = akt;
    }

    fa.epit(0, fa.meret -1, 0);

    while(q--){
        int a, b;
        cin >> a >> b;
        a--; b--;

        cout << fa.keres(0, fa.meret - 1, 0, a, b) << "\n";
    }
}
Részfeladat Összpont Teszt Verdikt Idő Memória
subtask1 0/0
1 Elfogadva 3ms 1824 KiB
2 Elfogadva 3ms 2052 KiB
subtask2 20/20
3 Elfogadva 3ms 2148 KiB
4 Elfogadva 3ms 2148 KiB
5 Elfogadva 3ms 2276 KiB
6 Elfogadva 3ms 2484 KiB
7 Elfogadva 3ms 2808 KiB
8 Elfogadva 3ms 2904 KiB
9 Elfogadva 3ms 2888 KiB
subtask3 20/20
10 Elfogadva 3ms 2148 KiB
11 Elfogadva 3ms 2148 KiB
12 Elfogadva 3ms 2276 KiB
13 Elfogadva 3ms 2484 KiB
14 Elfogadva 3ms 2808 KiB
15 Elfogadva 3ms 2904 KiB
16 Elfogadva 3ms 2888 KiB
17 Elfogadva 6ms 2968 KiB
18 Elfogadva 6ms 3228 KiB
19 Elfogadva 6ms 3216 KiB
20 Elfogadva 6ms 3232 KiB
21 Elfogadva 6ms 3224 KiB
22 Elfogadva 6ms 3508 KiB
23 Elfogadva 6ms 3412 KiB
subtask4 60/60
24 Elfogadva 3ms 2148 KiB
25 Elfogadva 3ms 2148 KiB
26 Elfogadva 3ms 2276 KiB
27 Elfogadva 3ms 2484 KiB
28 Elfogadva 3ms 2808 KiB
29 Elfogadva 3ms 2904 KiB
30 Elfogadva 3ms 2888 KiB
31 Elfogadva 6ms 2968 KiB
32 Elfogadva 6ms 3228 KiB
33 Elfogadva 6ms 3216 KiB
34 Elfogadva 6ms 3232 KiB
35 Elfogadva 6ms 3224 KiB
36 Elfogadva 6ms 3508 KiB
37 Elfogadva 6ms 3412 KiB
38 Elfogadva 152ms 8440 KiB
39 Elfogadva 151ms 8444 KiB
40 Elfogadva 148ms 8692 KiB
41 Elfogadva 146ms 8676 KiB
42 Elfogadva 145ms 8748 KiB
43 Elfogadva 146ms 8988 KiB
44 Elfogadva 149ms 8996 KiB