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 13:54:58

#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++) {
        ll len = y[i] - x[i];
        if(mid < x[i]) cnt += len;
        else if(mid < y[i] - 1) cnt += (y[i] - 1 - mid);
    }
    // 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 - (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;
}