166272025-05-07 11:02:08buzaszendvicsTelefonközpontcpp17Elfogadva 100/100483ms15208 KiB
#include <iostream>
#include <vector>
#include <cmath>
using namespace std;

const int MAXN = 200005;
int log2val[MAXN];
int st[MAXN][20];

void buildSparseTable(const vector<int>& active, int n) {
    for (int i = 1; i <= n; ++i)
        st[i][0] = active[i];

    for (int j = 1; (1 << j) <= n; ++j) {
        for (int i = 1; i + (1 << j) - 1 <= n; ++i) {
            st[i][j] = max(st[i][j - 1], st[i + (1 << (j - 1))][j - 1]);
        }
    }
}

int query(int l, int r) {
    int len = r - l + 1;
    int k = log2val[len];
    return max(st[l][k], st[r - (1 << k) + 1][k]);
}

int main() {
    int M, N, Q;
    cin >> M >> N >> Q;

    vector<int> diff(M + 2, 0);
    vector<int> active(M + 2, 0);

    // log2 előkészítés
    for (int i = 2; i < MAXN; ++i)
        log2val[i] = log2val[i / 2] + 1;

    // Hívások feldolgozása
    for (int i = 0; i < N; ++i) {
        int k, v;
        cin >> k >> v;
        diff[k]++;
        diff[v + 1]--;
    }

    // Aktív hívások számítása
    for (int i = 1; i <= M; ++i) {
        active[i] = active[i - 1] + diff[i];
    }

    // Sparse Table építése
    buildSparseTable(active, M);

    // Lekérdezések
    for (int i = 0; i < Q; ++i) {
        int l, r;
        cin >> l >> r;
        cout << query(l, r) << "\n";
    }

    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva2ms1120 KiB
2Elfogadva2ms1076 KiB
subtask220/20
3Elfogadva2ms1076 KiB
4Elfogadva2ms1076 KiB
5Elfogadva2ms1076 KiB
6Elfogadva2ms1076 KiB
7Elfogadva2ms1160 KiB
8Elfogadva3ms1120 KiB
9Elfogadva2ms1076 KiB
subtask320/20
10Elfogadva2ms1076 KiB
11Elfogadva2ms1076 KiB
12Elfogadva2ms1076 KiB
13Elfogadva2ms1076 KiB
14Elfogadva2ms1160 KiB
15Elfogadva3ms1120 KiB
16Elfogadva2ms1076 KiB
17Elfogadva12ms1336 KiB
18Elfogadva12ms1528 KiB
19Elfogadva12ms1528 KiB
20Elfogadva12ms1528 KiB
21Elfogadva12ms1332 KiB
22Elfogadva12ms1520 KiB
23Elfogadva12ms1332 KiB
subtask460/60
24Elfogadva2ms1076 KiB
25Elfogadva2ms1076 KiB
26Elfogadva2ms1076 KiB
27Elfogadva2ms1076 KiB
28Elfogadva2ms1160 KiB
29Elfogadva3ms1120 KiB
30Elfogadva2ms1076 KiB
31Elfogadva12ms1336 KiB
32Elfogadva12ms1528 KiB
33Elfogadva12ms1528 KiB
34Elfogadva12ms1528 KiB
35Elfogadva12ms1332 KiB
36Elfogadva12ms1520 KiB
37Elfogadva12ms1332 KiB
38Elfogadva479ms15208 KiB
39Elfogadva474ms15200 KiB
40Elfogadva477ms15204 KiB
41Elfogadva483ms15204 KiB
42Elfogadva470ms15156 KiB
43Elfogadva472ms15156 KiB
44Elfogadva469ms15204 KiB