Submission
Status:
[PPPP-][SSSSS][SSSSSSSSSS]
Subtask/Task Score:
{0/20}{0/30}{0/50}
Score: 0
User: Pung
Problemset: ห้องสมุดเมือง 3M
Language: cpp
Time: 0.003 second
Submitted On: 2026-03-09 19:50:56
#include <bits/stdc++.h>
using namespace std;
int main()
{
cin.tie(0)->sync_with_stdio(0);
int n;
cin >> n;
vector<pair<int,int>> v;
int k = 0;
int minn = 20000001;
int maxx = -1;
for(int i = 0; i < n; i++){
int a,b;
cin >> a >> b;
k+=(b-a);
minn = min(minn, a);
maxx = max(maxx,b-1);
v.push_back({a,b-1});
}
int t = k/2;
int l = minn;
int r = maxx;
int ans = 0;
while(l <= r){
int mid = (r+l)/2;
int count = 0;
for(auto i : v){
if(mid > i.first){
count+=min(mid+1,i.second+1)-i.first;
}
}
if(count >= t){
ans = mid;
r = mid-1;
}
else{
l = mid+1;
}
}
cout << ans;
}