Submission

Status:

[PP-SS][SSSSS][SSSSSSSSSS]

Subtask/Task Score:

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

Score: 0

User: kd

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

Language: cpp

Time: 0.002 second

Submitted On: 2025-07-13 02:36:56

#include<bits/stdc++.h>
using namespace std;
#define ll long long
int main(){
    cin.tie(0)->sync_with_stdio(0);
    ll n, total=0, mx=-1;
    cin>>n;
    ll arr[n][2];
    for(int i=0;i<n;i++){
        cin>>arr[i][0]>>arr[i][1];
        total+=(arr[i][1]-arr[i][0]);
        mx = max(mx, arr[i][1]-1);
    }
    ll k = floor(total/2), l=0, r=mx, mid, ans;
    while(l<=r){
        mid = (l+r)/2;
        ll cnt = 0;
        for(int i=0;i<n;i++){
            if(arr[i][0]>mid) continue;
            else if(mid>arr[i][1]-1) cnt += arr[i][1]-arr[i][0];
            else cnt += mid-arr[i][0]+1;
        }
        if(cnt<k) l = mid+1;
        else{
            ans = mid;
            r = mid-1;
        }
    }
    cout<<ans;
}