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