108002024-04-14 11:47:24AblablablaTelefonközpontcpp17Elfogadva 100/100152ms8996 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ÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva3ms1824 KiB
2Elfogadva3ms2052 KiB
subtask220/20
3Elfogadva3ms2148 KiB
4Elfogadva3ms2148 KiB
5Elfogadva3ms2276 KiB
6Elfogadva3ms2484 KiB
7Elfogadva3ms2808 KiB
8Elfogadva3ms2904 KiB
9Elfogadva3ms2888 KiB
subtask320/20
10Elfogadva3ms2148 KiB
11Elfogadva3ms2148 KiB
12Elfogadva3ms2276 KiB
13Elfogadva3ms2484 KiB
14Elfogadva3ms2808 KiB
15Elfogadva3ms2904 KiB
16Elfogadva3ms2888 KiB
17Elfogadva6ms2968 KiB
18Elfogadva6ms3228 KiB
19Elfogadva6ms3216 KiB
20Elfogadva6ms3232 KiB
21Elfogadva6ms3224 KiB
22Elfogadva6ms3508 KiB
23Elfogadva6ms3412 KiB
subtask460/60
24Elfogadva3ms2148 KiB
25Elfogadva3ms2148 KiB
26Elfogadva3ms2276 KiB
27Elfogadva3ms2484 KiB
28Elfogadva3ms2808 KiB
29Elfogadva3ms2904 KiB
30Elfogadva3ms2888 KiB
31Elfogadva6ms2968 KiB
32Elfogadva6ms3228 KiB
33Elfogadva6ms3216 KiB
34Elfogadva6ms3232 KiB
35Elfogadva6ms3224 KiB
36Elfogadva6ms3508 KiB
37Elfogadva6ms3412 KiB
38Elfogadva152ms8440 KiB
39Elfogadva151ms8444 KiB
40Elfogadva148ms8692 KiB
41Elfogadva146ms8676 KiB
42Elfogadva145ms8748 KiB
43Elfogadva146ms8988 KiB
44Elfogadva149ms8996 KiB