Submission

Status:

[PP-SS][SSSSS][SSSSSSSSSS]

Subtask/Task Score:

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

Score: 0

User: Brabra475

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

Language: cpp

Time: 0.002 second

Submitted On: 2026-03-10 20:59:30

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

int main(){
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    long long n;

    cin>>n;

    vector<pair<long long,long long>> book;
    vector<long long> freq;
    long long total=0;
    for(long long i =0;i<n;i++){
        long long a,b;
        cin>>a>>b;
        book.push_back({a,b});
        total+=b-a;

    }

    sort(book.begin(),book.end());

    for(long long i =0;i<n;i++){
        long long a=book[i].first;
        long long b=book[i].second;
        freq.push_back(b-a);
    }

    long long mid;
    if (total == 1) {
        mid = 0;
    } else {
        mid = (total / 2) - 1;
    }
    
    long long prefix=0;
    long long reprefix;

    for(long long i =0;i<n;i++){
        reprefix=prefix;
        prefix+=freq[i];
        if(mid<=prefix){
            long long a = book[i].first;
            cout<<a+(mid-reprefix);
            return 0;
        }
        
    }
}*/


// 0 10
// 5 15
// 10 20

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

int main(){
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    
    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;  // floor(K/2)

    // Binary search
    long long lo = 0, hi = 20000000;
    while(lo < hi){
        long long mid = (lo + hi) / 2;
        
        // count หนังสือที่ตัวอักษร <= mid
        long long cnt = 0;
        for(int i = 0; i < n; i++){
            if(X[i] <= mid)
                cnt += min(Y[i], mid+1) - X[i];
        }
        
        if(cnt >= target) hi = mid;
        else lo = mid + 1;
    }
    cout << lo << "\n";
}