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