165252025-05-06 10:37:11BucsMateTelefonközpontcpp17Time limit exceeded 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;
}
SubtaskSumTestVerdictTimeMemory
subtask10/0
1Accepted4ms4148 KiB
2Accepted4ms4148 KiB
subtask220/20
3Accepted6ms4312 KiB
4Accepted6ms4160 KiB
5Accepted4ms4148 KiB
6Accepted4ms4148 KiB
7Accepted4ms4332 KiB
8Accepted4ms4340 KiB
9Accepted4ms4148 KiB
subtask320/20
10Accepted6ms4312 KiB
11Accepted6ms4160 KiB
12Accepted4ms4148 KiB
13Accepted4ms4148 KiB
14Accepted4ms4332 KiB
15Accepted4ms4340 KiB
16Accepted4ms4148 KiB
17Accepted16ms4340 KiB
18Accepted16ms4332 KiB
19Accepted16ms4364 KiB
20Accepted16ms4348 KiB
21Accepted16ms4340 KiB
22Accepted16ms4148 KiB
23Accepted16ms4344 KiB
subtask40/60
24Accepted6ms4312 KiB
25Accepted6ms4160 KiB
26Accepted4ms4148 KiB
27Accepted4ms4148 KiB
28Accepted4ms4332 KiB
29Accepted4ms4340 KiB
30Accepted4ms4148 KiB
31Accepted16ms4340 KiB
32Accepted16ms4332 KiB
33Accepted16ms4364 KiB
34Accepted16ms4348 KiB
35Accepted16ms4340 KiB
36Accepted16ms4148 KiB
37Accepted16ms4344 KiB
38Time limit exceeded500ms5100 KiB
39Time limit exceeded504ms5096 KiB
40Time limit exceeded504ms5096 KiB
41Accepted500ms5172 KiB
42Time limit exceeded508ms5108 KiB
43Accepted499ms5168 KiB
44Accepted500ms5172 KiB