Submission

Status:

[PP-SS][SSSSS][SSSSSSSSSS]

Subtask/Task Score:

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

Score: 0

User: 38408

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

Language: cpp

Time: 0.004 second

Submitted On: 2026-10-13 14:57:49

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

using ll = long long;

int main() {
    int n;
    cin >> n;
    vector<pair<ll, ll>> num(n);
    ll K = 0;
    for (int i = 0; i < n; i++) {
        ll x, y;
        cin >> x >> y;

        num[i] = {x, y};
        K += y - x;
    }
    ll target = K / 2;
    ll left = 0, right = 20000000;

    while (left < right) {
        ll mid = left + (right - left) / 2;
        ll count = 0;

        for (int i = 0; i < n; i++) {
            ll x = num[i].first;
            ll y = num[i].second;

            count += max(0LL, min(y, mid + 1) - x);
        }

        if (count >= target) {
            right = mid;
        } else {
            left = mid + 1;
        }
    }

    cout << left << '\n';

    return 0;
}