165242025-05-06 10:32:57BucsMateTelefonközpontcpp17Időlimit túllépés 40/100515ms5172 KiB
#include <iostream>
#include <vector>

using namespace std;

vector<int> segmTree(800008, 0);

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

    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(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;
    vector<int> tomb(200001, 0);
    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, tomb);

    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
2Elfogadva4ms4188 KiB
subtask220/20
3Elfogadva4ms4148 KiB
4Elfogadva4ms4148 KiB
5Elfogadva4ms4148 KiB
6Elfogadva4ms4152 KiB
7Elfogadva4ms4264 KiB
8Elfogadva6ms4148 KiB
9Elfogadva4ms4148 KiB
subtask320/20
10Elfogadva4ms4148 KiB
11Elfogadva4ms4148 KiB
12Elfogadva4ms4148 KiB
13Elfogadva4ms4152 KiB
14Elfogadva4ms4264 KiB
15Elfogadva6ms4148 KiB
16Elfogadva4ms4148 KiB
17Elfogadva16ms4148 KiB
18Elfogadva16ms4332 KiB
19Elfogadva16ms4336 KiB
20Elfogadva16ms4232 KiB
21Elfogadva16ms4148 KiB
22Elfogadva16ms4340 KiB
23Elfogadva16ms4148 KiB
subtask40/60
24Elfogadva4ms4148 KiB
25Elfogadva4ms4148 KiB
26Elfogadva4ms4148 KiB
27Elfogadva4ms4152 KiB
28Elfogadva4ms4264 KiB
29Elfogadva6ms4148 KiB
30Elfogadva4ms4148 KiB
31Elfogadva16ms4148 KiB
32Elfogadva16ms4332 KiB
33Elfogadva16ms4336 KiB
34Elfogadva16ms4232 KiB
35Elfogadva16ms4148 KiB
36Elfogadva16ms4340 KiB
37Elfogadva16ms4148 KiB
38Időlimit túllépés515ms5108 KiB
39Elfogadva497ms5172 KiB
40Időlimit túllépés512ms5164 KiB
41Időlimit túllépés500ms5172 KiB
42Elfogadva495ms5096 KiB
43Időlimit túllépés509ms5092 KiB
44Elfogadva488ms5092 KiB