Submission

Status:

[PPPPP][PPPPP][PPPPPPPPPP]

Subtask/Task Score:

{20/20}{30/30}{50/50}

Score: 100

User: theem1502

Problemset: ห้องสมุดเมือง 3M

Language: cpp

Time: 0.096 second

Submitted On: 2026-02-14 19:46:11

#include <bits/stdc++.h>
using namespace std;
    int sweep[20000003];
        int thearray[20000003];
            int prefixarray[20000003];
int main() {
    int num;
    cin >> num;

    for (int i = 0; i < num; i++) {
        int first, second;
        cin >> first >> second;
        sweep[first]++;
        sweep[second]--;
    }
    thearray[0] = sweep[0];
    prefixarray[0] = thearray[0];
    for (int i = 1; i <= 20000000; i++) {
        thearray[i] = thearray[i-1] + sweep[i];
        prefixarray[i] = prefixarray[i-1] + thearray[i];
    }

    int median = prefixarray[20000000] / 2;

    if (median == 0) {
        median = 1;
    }

    cout << lower_bound(prefixarray, prefixarray + 20000000, median ) - prefixarray;


/*
long long K = prefixarray[20000000];
long long target = K / 2;
if (target == 0) target = 1;

int ans = lower_bound(prefixarray,
                      prefixarray + 20000001,
                      target) - prefixarray;

cout << ans;
*/
}
/*
#include <bits/stdc++.h>
using namespace std;
    int sweep[20000003];
        int thearray[20000003];
            int prefixarray[20000003];
int main() {
    int num;
    cin >> num;

    for (int i = 0; i < num; i++) {
        int first, second;
        cin >> first >> second;
        sweep[first]++;
        sweep[second]--;
    }
    thearray[0] = sweep[0];
    prefixarray[0] = thearray[0];
    for (int i = 1; i <= 20000000; i++) {
        thearray[i] = thearray[i-1] + sweep[i];
        prefixarray[i] = prefixarray[i-1] + thearray[i];
    }
    int median = prefixarray[20000000] / 2;
    cout << lower_bound(prefixarray, prefixarray + 20000000, median) - prefixarray;


}
*/