Submission

Status:

[PPPPP][PPPPP][PPPPPPPPPP]

Subtask/Task Score:

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

Score: 100

User: Chawin

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

Language: cpp

Time: 0.005 second

Submitted On: 2026-03-21 11:58:10

#include<bits/stdc++.h>
using namespace std;

using ll = long long;

int main(){
    ios_base::sync_with_stdio(0), cin.tie(0);

    int n;
    cin >> n;

    ll k = 0, l = 20000000, r = 0;
    vector<ll> x(n), y(n);
    for(int i = 0; i < n; i++){
        cin >> x[i] >> y[i];

        k += y[i] - x[i];

        l = min(l, x[i]);
        r = max(r, y[i]-1);
    }

    ll median = k/2;

    while(l < r){
        ll mid = l + (r - l)/2;

        ll cnt = 0;
        for(int i = 0; i < n; i++){
            if(x[i] <= mid){
                cnt += min(y[i] - x[i], mid - x[i] + 1);
            }
        }

        if(cnt >= median) r = mid;
        else l = mid + 1;
    }
    
    cout << l;

    return 0;
}