165262025-05-06 10:39:10BucsMateTelefonközpontcpp17Elfogadva 100/100321ms5688 KiB
#include <iostream>
#include <vector>

using namespace std;

vector<int> segmTree(800008, 0);
vector<int> tomb(200001, 0);

void constructTree(int node, int left, int right)
{
    if(left > right){
        return;
    }
    if(left == right){
        segmTree[node] = tomb[left];
        return;
    }
    int mid = (left + right)/2;
    constructTree(2*node, left, mid);
    constructTree(2*node+1, mid+1, right);

    segmTree[node] = max(segmTree[2*node], segmTree[2*node+1]);
}

int query(int node, int left, int right, int a, int b)
{
    if(left > right){
        return 0;
    }
    if(right < a || left > b){
        return 0;
    }
    if(left >= a && right <= b){
        return segmTree[node];
    }
    int maxleft = 0, maxright = 0;
    int mid = (left + right)/2;

    if(a <= mid){
        maxleft = query(2*node, left, mid, a, b);
    }
    if(mid < b){
        maxright = query(2*node+1, mid+1, right, a, b);
    }
    return max(maxleft, maxright);
}

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

    for(int i = 0; i < N; i++){
        int a, b;
        cin >> a >> b;
        tomb[a]++;
        tomb[b+1]--;
    }
    for(int i = 2; i <= 200000; i++){
        tomb[i] = tomb[i-1] + tomb[i];
    }
    constructTree(1, 1, M);
    /*cout << "-----------------\n";
    for(int i = 1; i <= M; i++){
        cout << tomb[i] << " ";
    }
    cout << "\n-----------------\n";*/
    int a, b;
    vector<int> ans(Q);
    for(int i = 0; i < Q; i++){
        cin >> a >> b;
        ans[i] = query(1, 1, M, a, b);
    }
    for(int i = 0; i < Q; i++){
        cout << ans[i] << "\n";
    }
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva4ms4148 KiB
2Elfogadva4ms4148 KiB
subtask220/20
3Elfogadva4ms4148 KiB
4Elfogadva4ms4148 KiB
5Elfogadva4ms4148 KiB
6Elfogadva4ms4152 KiB
7Elfogadva4ms4148 KiB
8Elfogadva4ms4148 KiB
9Elfogadva4ms4152 KiB
subtask320/20
10Elfogadva4ms4148 KiB
11Elfogadva4ms4148 KiB
12Elfogadva4ms4148 KiB
13Elfogadva4ms4152 KiB
14Elfogadva4ms4148 KiB
15Elfogadva4ms4148 KiB
16Elfogadva4ms4152 KiB
17Elfogadva10ms4348 KiB
18Elfogadva9ms4148 KiB
19Elfogadva9ms4192 KiB
20Elfogadva9ms4348 KiB
21Elfogadva9ms4148 KiB
22Elfogadva10ms4148 KiB
23Elfogadva9ms4340 KiB
subtask460/60
24Elfogadva4ms4148 KiB
25Elfogadva4ms4148 KiB
26Elfogadva4ms4148 KiB
27Elfogadva4ms4152 KiB
28Elfogadva4ms4148 KiB
29Elfogadva4ms4148 KiB
30Elfogadva4ms4152 KiB
31Elfogadva10ms4348 KiB
32Elfogadva9ms4148 KiB
33Elfogadva9ms4192 KiB
34Elfogadva9ms4348 KiB
35Elfogadva9ms4148 KiB
36Elfogadva10ms4148 KiB
37Elfogadva9ms4340 KiB
38Elfogadva321ms5600 KiB
39Elfogadva321ms5684 KiB
40Elfogadva319ms5612 KiB
41Elfogadva317ms5608 KiB
42Elfogadva316ms5608 KiB
43Elfogadva319ms5684 KiB
44Elfogadva317ms5688 KiB