Submission
Status:
[PPPPP][PPPPP][PPPPPPPPPP]
Subtask/Task Score:
{20/20}{30/30}{50/50}
Score: 100
User: 38408
Problemset: ห้องสมุดเมือง 3M
Language: cpp
Time: 0.004 second
Submitted On: 2026-10-13 14:59:36
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int main() {
int n;
cin >> n;
vector<pair<ll, ll>> num(n);
ll K = 0;
for (int i = 0; i < n; i++) {
ll x, y;
cin >> x >> y;
num[i] = {x, y};
K += y - x;
}
ll target = max(1LL, K / 2);
ll left = 0, right = 20000000;
while (left < right) {
ll mid = left + (right - left) / 2;
ll count = 0;
for (int i = 0; i < n; i++) {
ll x = num[i].first;
ll y = num[i].second;
count += max(0LL, min(y, mid + 1) - x);
}
if (count >= target) {
right = mid;
} else {
left = mid + 1;
}
}
cout << left << '\n';
return 0;
}