Submission

Status:
[PPPP-][SSSSS][SSSSSSSSSS]

Score: 0

User: Nakornrat

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

Language: cpp

Time: 0.002 second

Submitted On: 2025-03-17 22:06:28

#include <bits/stdc++.h>
using namespace std;
#define endl '\n'
using pii = pair<int, int>;
vector<pii> a;
int n;
int lcal(int mid){
    int va = 0;
    for(int i=0;i<n;i++){
        if(mid>a[i].first){
            va+=min(mid, a[i].second)-a[i].first;
        }
    }
    return va;
}
int main()
{
    ios::sync_with_stdio(false);cin.tie(0);
    cin>>n;
    int sz = 0;
    a.resize(n);
    int l = INT_MAX, r = 0;
    for(int i=0;i<n;i++){
        cin>>a[i].first>>a[i].second;
        sz+=a[i].second-a[i].first;
        l = min(l, a[i].first);
        r = max(r, a[i].second);
    }
    r = r-1;
    int med = sz/2;
    --med;
    int ans = -1;
    int mid;
    while(l<=r){
        mid = l+(r-l)/2;
        if(lcal(mid)>=med){
            ans = mid;
            r = mid-1;
        }else{
            l = mid+1;
        }
    }
    cout<<ans;
}