Submission
Status:
[P-SSS][SSSSS][SSSSSSSSSS]
Subtask/Task Score:
{0/20}{0/30}{0/50}
Score: 0
User: s0m30n3
Problemset: ห้องสมุดเมือง 3M
Language: cpp
Time: 0.002 second
Submitted On: 2026-01-26 20:18:04
// Binary Search
#include<iostream>
#include<vector>
#include<cmath>
#include <climits>
using namespace std;
int main(){
int n;
cin >> n;
vector<pair<int ,int>> range;
int ma=0;
int mi=INT_MAX;
for(int i=0;i<n;i++){
int x,y;
cin >> x >> y;
ma = max(ma, y);
mi = min(mi,x);
range.push_back({x,y});
}
int left=mi;
int right=ma;
int target = floor(n/2);
int answer=0;
while(left<=right){
int mid = left + (right-left)/2;
int test=0;
for(auto [u , v] : range){
if (mid >= v){
test += (v-u);
}
else{
test += (mid-u+1);
}
}
if(test >= target){
right=mid-1;
answer=mid;
}
else{
left=mid+1;
}
}
cout << answer;
}