Submission

Status:

[P-SSS][SSSSS][SSSSSSSSSS]

Subtask/Task Score:

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

Score: 0

User: koon

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

Language: cpp

Time: 0.002 second

Submitted On: 2026-03-06 09:40:28

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

int main() {
    int n; cin >> n;
    vector<pair<int, int>> num;
    int sum = 0;
    for (int i = 0; i < n; i++) {
        int x, y;
        cin >> x >> y;
        num.push_back({x, y});
        sum += y-x;
    }
    int pos = sum/2;
    int low = 0, high = 20000000;
    int res = low;
    while (low <= high) {
        int mid = low+(high-low)/2;
        int cnt = 0;
        for (auto [x, y] : num) {
            cnt += max(0, min(mid+1, y) - x);
        }

        if (cnt > pos) {
            high = mid-1;
        } else {
            low = mid+1;
        }
    }
    cout << low-1;
    return 0;
}