Submission

Status:

[PPPPP][PPPPP][PPPPPPPPPP]

Subtask/Task Score:

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

Score: 100

User: sulinx

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

Language: cpp

Time: 0.003 second

Submitted On: 2026-02-14 17:12:15

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

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    int n;
    cin >> n;

    vector<pair<int,int>> range;
    int rmax = 0;
    int rmin = INT_MAX;
    ll total = 0;
    
    for(int i = 0;i<n;i++){
        int x,y;
        cin >> x >> y;

        rmax = max(rmax,y);
        rmin = min(rmin,x);
        range.push_back({x,y});

        total += (ll)(y-x);
    }
    
    ll tmp = total/2; 
    int left = rmin;
    int right = rmax;
    int med = 0;

    while(left <= right){
        int mid = left + (right - left)/2;

        ll p2mid = 0;
        for(auto&r:range){
            int start = r.first;
            int end = r.second;
            ll count = min(end,mid+1) - start;
            if(count > 0){
                p2mid += count;
            }
        }

        if(p2mid>=tmp){
            med = mid;
            right = mid-1;
        }else{
             left = mid+1;
        }
    }
    cout << med;
    return 0;
}