166272025-05-07 11:02:08buzaszendvicsTelefonközpontcpp17Accepted 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;
}
SubtaskSumTestVerdictTimeMemory
subtask10/0
1Accepted2ms1120 KiB
2Accepted2ms1076 KiB
subtask220/20
3Accepted2ms1076 KiB
4Accepted2ms1076 KiB
5Accepted2ms1076 KiB
6Accepted2ms1076 KiB
7Accepted2ms1160 KiB
8Accepted3ms1120 KiB
9Accepted2ms1076 KiB
subtask320/20
10Accepted2ms1076 KiB
11Accepted2ms1076 KiB
12Accepted2ms1076 KiB
13Accepted2ms1076 KiB
14Accepted2ms1160 KiB
15Accepted3ms1120 KiB
16Accepted2ms1076 KiB
17Accepted12ms1336 KiB
18Accepted12ms1528 KiB
19Accepted12ms1528 KiB
20Accepted12ms1528 KiB
21Accepted12ms1332 KiB
22Accepted12ms1520 KiB
23Accepted12ms1332 KiB
subtask460/60
24Accepted2ms1076 KiB
25Accepted2ms1076 KiB
26Accepted2ms1076 KiB
27Accepted2ms1076 KiB
28Accepted2ms1160 KiB
29Accepted3ms1120 KiB
30Accepted2ms1076 KiB
31Accepted12ms1336 KiB
32Accepted12ms1528 KiB
33Accepted12ms1528 KiB
34Accepted12ms1528 KiB
35Accepted12ms1332 KiB
36Accepted12ms1520 KiB
37Accepted12ms1332 KiB
38Accepted479ms15208 KiB
39Accepted474ms15200 KiB
40Accepted477ms15204 KiB
41Accepted483ms15204 KiB
42Accepted470ms15156 KiB
43Accepted472ms15156 KiB
44Accepted469ms15204 KiB