165282025-05-06 10:41:54BucsMateTelefonközpontcpp17Elfogadva 100/100314ms6708 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);

    vector<pair<int, int>> queries(Q);
    vector<int> ans(Q);
    for(int i = 0; i < Q; i++){
        cin >> queries[i].first >> queries[i].second;
    }
    for(int i = 0; i < Q; i++){
        ans[i] = query(1, 1, M, queries[i].first, queries[i].second);
    }
    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
5Elfogadva4ms4152 KiB
6Elfogadva4ms4148 KiB
7Elfogadva4ms4148 KiB
8Elfogadva4ms4084 KiB
9Elfogadva4ms4148 KiB
subtask320/20
10Elfogadva4ms4148 KiB
11Elfogadva4ms4148 KiB
12Elfogadva4ms4152 KiB
13Elfogadva4ms4148 KiB
14Elfogadva4ms4148 KiB
15Elfogadva4ms4084 KiB
16Elfogadva4ms4148 KiB
17Elfogadva9ms4336 KiB
18Elfogadva9ms4152 KiB
19Elfogadva9ms4328 KiB
20Elfogadva9ms4332 KiB
21Elfogadva9ms4148 KiB
22Elfogadva9ms4380 KiB
23Elfogadva9ms4216 KiB
subtask460/60
24Elfogadva4ms4148 KiB
25Elfogadva4ms4148 KiB
26Elfogadva4ms4152 KiB
27Elfogadva4ms4148 KiB
28Elfogadva4ms4148 KiB
29Elfogadva4ms4084 KiB
30Elfogadva4ms4148 KiB
31Elfogadva9ms4336 KiB
32Elfogadva9ms4152 KiB
33Elfogadva9ms4328 KiB
34Elfogadva9ms4332 KiB
35Elfogadva9ms4148 KiB
36Elfogadva9ms4380 KiB
37Elfogadva9ms4216 KiB
38Elfogadva314ms6700 KiB
39Elfogadva312ms6636 KiB
40Elfogadva307ms6676 KiB
41Elfogadva305ms6684 KiB
42Elfogadva307ms6668 KiB
43Elfogadva307ms6708 KiB
44Elfogadva305ms6632 KiB