Submission
Status:
[-SSSS][SSSSS][SSSSSSSSSS]
Subtask/Task Score:
{0/20}{0/30}{0/50}
Score: 0
User: Gump2011
Problemset: ห้องสมุดเมือง 3M
Language: cpp
Time: 0.002 second
Submitted On: 2026-03-08 11:33:19
#include <bits/stdc++.h>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int n;
vector<long long> X(n), Y(n);
long long total_books = 0;
for (int i = 0; i < n; ++i) {
cin >> X[i] >> Y[i];
total_books += (Y[i] - X[i]);
}
long long target_pos = total_books / 2;
long long low = 0, high = 20000000;
long long ans = high;
while (low <= high) {
long long mid = low + (high - low) / 2;
long long count = 0;
for (int i = 0; i < n; ++i) {
if (mid >= X[i]) {
if (mid < Y[i] - 1) {
count += (mid - X[i] + 1);
} else {
count += (Y[i] - X[i]);
}
}
}
if (count >= target_pos + 1) {
ans = mid;
high = mid - 1;
} else {
low = mid + 1;
}
}
cout << ans << endl;
return 0;
}