Submission

Status:

[-SSSS][SSSSS][SSSSSSSSSS]

Subtask/Task Score:

{0/20}{0/30}{0/50}

Score: 0

User: PeachyNHM

Problemset: ห้องสมุดเมือง 3M

Language: cpp

Time: 0.002 second

Submitted On: 2026-03-09 11:03:30

#include <bits/stdc++.h>
using namespace std;

int main(){

    int n;
    cin >> n;

    vector<long long> X(n), Y(n);
    long long K = 0;

    for(int i=0;i<n;i++){
        cin >> X[i] >> Y[i];
        K += (Y[i] - X[i]);
    }

    long long target = K/2;

    long long l = 0, r = 20000000, ans = 0;

    while(l <= r){

        long long mid = (l+r)/2;
        long long count = 0;

        for(int i=0;i<n;i++){

            if(mid < X[i]) continue;

            else if(mid >= Y[i])
                count += Y[i] - X[i];

            else
                count += mid - X[i] + 1;
        }

        if(count > target){
            ans = mid;
            r = mid - 1;
        }
        else{
            l = mid + 1;
        }
    }

    cout << ans;
}