165242025-05-06 10:32:57BucsMateTelefonközpontcpp17Time limit exceeded 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;
}
SubtaskSumTestVerdictTimeMemory
subtask10/0
1Accepted4ms4148 KiB
2Accepted4ms4188 KiB
subtask220/20
3Accepted4ms4148 KiB
4Accepted4ms4148 KiB
5Accepted4ms4148 KiB
6Accepted4ms4152 KiB
7Accepted4ms4264 KiB
8Accepted6ms4148 KiB
9Accepted4ms4148 KiB
subtask320/20
10Accepted4ms4148 KiB
11Accepted4ms4148 KiB
12Accepted4ms4148 KiB
13Accepted4ms4152 KiB
14Accepted4ms4264 KiB
15Accepted6ms4148 KiB
16Accepted4ms4148 KiB
17Accepted16ms4148 KiB
18Accepted16ms4332 KiB
19Accepted16ms4336 KiB
20Accepted16ms4232 KiB
21Accepted16ms4148 KiB
22Accepted16ms4340 KiB
23Accepted16ms4148 KiB
subtask40/60
24Accepted4ms4148 KiB
25Accepted4ms4148 KiB
26Accepted4ms4148 KiB
27Accepted4ms4152 KiB
28Accepted4ms4264 KiB
29Accepted6ms4148 KiB
30Accepted4ms4148 KiB
31Accepted16ms4148 KiB
32Accepted16ms4332 KiB
33Accepted16ms4336 KiB
34Accepted16ms4232 KiB
35Accepted16ms4148 KiB
36Accepted16ms4340 KiB
37Accepted16ms4148 KiB
38Time limit exceeded515ms5108 KiB
39Accepted497ms5172 KiB
40Time limit exceeded512ms5164 KiB
41Time limit exceeded500ms5172 KiB
42Accepted495ms5096 KiB
43Time limit exceeded509ms5092 KiB
44Accepted488ms5092 KiB