Submission
Status:
[P-SSS][SSSSS][SSSSSSSSSS]
Score: 0
User: Pera
Problemset: ห้องสมุดเมือง 3M
Language: cpp
Time: 0.003 second
Submitted On: 2025-03-24 21:00:39
#include <bits/stdc++.h>
using namespace std;
int countbooklessthanmid(vector<pair<int, int>>& libs, int mid) {
int count = 0;
for (auto& lib : libs) {
if (lib.first <= mid) {
count += min(mid, lib.second) - lib.first;
}
}
return count;
}
int main() {
int n; cin >> n;
vector<pair<int, int>> libs(n);
int books{0};
for (int i = 0; i < n; i++) {
int x, y;
cin >> x >> y;
books += y - x;
libs[i].first = x;
libs[i].second = y;
}
int medianidx = books / 2;
int low = 0;
int high = 40000000;
int result{};
while (low <= high) {
int mid = (low + high) / 2;
if (countbooklessthanmid(libs, mid) > medianidx) {
high = mid - 1;
result = mid;
} else {
low = mid + 1;
}
}
cout << result - 2 << '\n';
}