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;
}