Submission

Status:

[PP-SS][SSSSS][SSSSSSSSSS]

Subtask/Task Score:

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

Score: 0

User: mantaggez

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

Language: cpp

Time: 0.002 second

Submitted On: 2026-03-18 14:15:43

#include <bits/stdc++.h>

using namespace std;
using ll = long long;

const ll nx = 1e2+5;

ll n, k;
ll x[nx], y[nx];

bool check(ll mid)
{
    ll cnt = 0;
    for(ll i=1;i<=n;i++) {
        if(mid >= x[i]) {
            ll upper = min(mid, y[i] - 1);
            cnt += (upper - x[i] + 1);
        }
    }
    // cout << "cnt : " << cnt << "\n\n";
    return cnt >= k;
}

int main()
{
    cin.tie(NULL)->sync_with_stdio(false);
    cin >> n;
    for(ll i=1;i<=n;i++) {
        cin >> x[i] >> y[i];
        k += (y[i] - x[i]);
    }

    k = k / 2;
    // cout << "k : " << k  << "\n\n";
    ll l = 0, r = 2e7;
    while(l < r)
    {
        ll mid = (l + r) / 2;
        // cout << "Mid : " << mid << '\n';
        bool ok = check(mid);
        if(ok) r = mid;
        else l = mid + 1;
    }

    cout << l << '\n';

    return 0;
}