Submission

Status:

[-SSSS][SSSSS][SSSSSSSSSS]

Subtask/Task Score:

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

Score: 0

User: Gump2011

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

Language: cpp

Time: 0.002 second

Submitted On: 2026-03-08 11:33:19

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

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);

    int n;

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

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

    long long target_pos = total_books / 2;

    long long low = 0, high = 20000000;
    long long ans = high;

    while (low <= high) {
        long long mid = low + (high - low) / 2;
        long long count = 0;

        for (int i = 0; i < n; ++i) {
            if (mid >= X[i]) {
                if (mid < Y[i] - 1) {
                    count += (mid - X[i] + 1);
                } else {
                    count += (Y[i] - X[i]);
                }
            }
        }

        if (count >= target_pos + 1) {
            ans = mid;
            high = mid - 1;
        } else {
            low = mid + 1;
        }
    }

    cout << ans << endl;

    return 0;
}