Submission
Status:
[PPPPP][PPPPP][PPPPPPPPPP]
Subtask/Task Score:
{20/20}{30/30}{50/50}
Score: 100
User: navysrimuang
Problemset: ห้องสมุดเมือง 3M
Language: cpp
Time: 0.003 second
Submitted On: 2026-03-18 11:12:54
#include<bits/stdc++.h>
using namespace std;
using ll = long long;
const ll MX = 2e7;
vector<pair<ll,ll>> range;
ll cnt(ll m){
ll sum = 0;
for(auto [x,y] : range){
if(m < x) continue;
if(m >= y-1){
sum += y-x;
}else if(m >= x && m < y){
sum += (m-x+1);
}
}
return sum;
}
int main(){
cin.tie(0)->sync_with_stdio(0);
int n; cin >> n;
range.resize(n);
ll K = 0;
for(int i = 0;i<n;i++){
cin >> range[i].first >> range[i].second;
K += (range[i].second - range[i].first);
}
if(K == 1){
cout << range[0].first;
return 0;
}
ll l = 0,r = MX;
while(l<=r){
ll mid = l + (r-l)/2;
if(cnt(mid) >= (K/2)){
r = mid-1;
}else{
l = mid+1;
}
}
cout << l << "\n";
return 0;
}