Submission
Status:
[PP-SS][SSSSS][SSSSSSSSSS]
Score: 0
User: krittaphot
Problemset: ห้องสมุดเมือง 3M
Language: cpp
Time: 0.003 second
Submitted On: 2025-03-15 22:57:23
#include <bits/stdc++.h>
using namespace std;
long long solve(vector<pair<int,int>> &v, long long mid)
{
long long cnt = 0;
for(auto &i : v){
if(mid >= i.first){
cnt += min((long long)i.second - i.first, mid - i.first + 1);
}
}
return cnt;
}
int main()
{
int n;
cin >> n;
vector<pair<int,int>> v(n);
long long total = 0;
for(int i = 0; i < n; i++){
cin >> v[i].first >> v[i].second;
total += v[i].second - v[i].first;
}
long long median = total / 2;
long long left = 0, right = 2000000000, ans;
while(left <= right){
long long mid = left + (right - left) / 2;
if(solve(v, mid) < median){
left = mid + 1;
} else {
ans = mid;
if (left == right) break;
right = mid - 1;
}
}
cout << ans;
return 0;
}