Submission

Status:

[PP-SS][SSSSS][SSSSSSSSSS]

Subtask/Task Score:

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

Score: 0

User: Ryuthin94

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

Language: cpp

Time: 0.003 second

Submitted On: 2026-03-12 12:41:37

#include <bits/stdc++.h>
using namespace std;
using pii = pair<long long, long long>;

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

    int n;
    cin >> n;

    vector<pii> range;
    long long total = 0;
    long long min_x = LLONG_MAX, max_y = LLONG_MIN;

    for (int i = 0; i < n; i++)
    {
        long long x, y;
        cin >> x >> y;
        range.push_back({x, y});
        total += (y - x); // interval [x, y)
        min_x = min(min_x, x);
        max_y = max(max_y, y);
    }

    auto getIndex = [&](long long val)
    {
        long long result = 0;
        for (auto [x, y] : range)
        {
            if (val <= x)
                continue;
            result += min(val, y) - x;
        }
        return result;
    };

    long long target = total / 2;
    long long l = min_x, r = max_y;

    while (l < r)
    {
        long long mid = l + (r - l) / 2;
        if (getIndex(mid) < target)
            l = mid + 1;
        else
            r = mid;
    }

    cout << l - 1 << '\n';
}