165252025-05-06 10:37:11BucsMateTelefonközpontcpp17Időlimit túllépés 40/100508ms5172 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);

    for(int i = 0; i < Q; i++){
        int a, b;
        cin >> a >> b;
        cout << query(1, 1, M, a, b) << endl;
    }

    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva4ms4148 KiB
2Elfogadva4ms4148 KiB
subtask220/20
3Elfogadva6ms4312 KiB
4Elfogadva6ms4160 KiB
5Elfogadva4ms4148 KiB
6Elfogadva4ms4148 KiB
7Elfogadva4ms4332 KiB
8Elfogadva4ms4340 KiB
9Elfogadva4ms4148 KiB
subtask320/20
10Elfogadva6ms4312 KiB
11Elfogadva6ms4160 KiB
12Elfogadva4ms4148 KiB
13Elfogadva4ms4148 KiB
14Elfogadva4ms4332 KiB
15Elfogadva4ms4340 KiB
16Elfogadva4ms4148 KiB
17Elfogadva16ms4340 KiB
18Elfogadva16ms4332 KiB
19Elfogadva16ms4364 KiB
20Elfogadva16ms4348 KiB
21Elfogadva16ms4340 KiB
22Elfogadva16ms4148 KiB
23Elfogadva16ms4344 KiB
subtask40/60
24Elfogadva6ms4312 KiB
25Elfogadva6ms4160 KiB
26Elfogadva4ms4148 KiB
27Elfogadva4ms4148 KiB
28Elfogadva4ms4332 KiB
29Elfogadva4ms4340 KiB
30Elfogadva4ms4148 KiB
31Elfogadva16ms4340 KiB
32Elfogadva16ms4332 KiB
33Elfogadva16ms4364 KiB
34Elfogadva16ms4348 KiB
35Elfogadva16ms4340 KiB
36Elfogadva16ms4148 KiB
37Elfogadva16ms4344 KiB
38Időlimit túllépés500ms5100 KiB
39Időlimit túllépés504ms5096 KiB
40Időlimit túllépés504ms5096 KiB
41Elfogadva500ms5172 KiB
42Időlimit túllépés508ms5108 KiB
43Elfogadva499ms5168 KiB
44Elfogadva500ms5172 KiB