Submission

Status:

[PPPPP][PPPPP][PPPPPPPPPP]

Subtask/Task Score:

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

Score: 100

User: ssss

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

Language: cpp

Time: 0.003 second

Submitted On: 2026-03-09 00:41:04

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

int main(){
    long long total=0;
    int n,n1,n2,maxx=INT_MIN,minn=INT_MAX;
    vector<pair<int,int>>all;
    cin>>n;
    for(int i=0;i<n;i++){
        cin>>n1>>n2;
        minn = min(minn,n1);
        maxx = max(maxx,n2);
        all.push_back({n1,n2});
        total+=(long long)(n2-n1);
    }
    long long t=total/2;
    int l=minn,r=maxx,ans=0;
    while(l<=r){
        int mid=l+(r-l)/2;
        long long now=0;
        for(auto i:all){
            int c = min(mid+1,i.second) - i.first;
            if(c>0){
                now+=c;
            }
        }
        if(now>=t){
            ans=mid;
            r=mid-1;
        }else{
            l=mid+1;
        }
    }
    cout<<ans;
}