Submission

Status:
[PPPPP][PPPPP][PPPPPPPPPP]

Score: 100

User: njoop

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

Language: cpp

Time: 0.002 second

Submitted On: 2025-03-09 23:38:19

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

int n, le[110], ri[110], cnt, l=0, r=2e7;

bool check(int no) {
    int val = 0;
    for(int i=1; i<=n; i++) {
        if(no < le[i]) continue;
        if(no >= ri[i]) val += ri[i]-le[i]+1;
        else val += no-le[i]+1;
    }
    return val <= max(cnt/2-1, 0LL);
}

signed main() {
    cin.tie(0)->sync_with_stdio(0);
    cin >> n;
    for(int i=1; i<=n; i++) {
        cin >> le[i] >> ri[i];
        ri[i]--;
        cnt += ri[i]-le[i]+1;
    }
    while(l < r) {
        int mid = (l+r)/2;
        if(check(mid)) {
            l = mid+1;
        } else {
            r = mid;
        }
    }
    cout << l;
    return 0;
}