Submission
Status:
[PP-SS][SSSSS][SSSSSSSSSS]
Subtask/Task Score:
{0/20}{0/30}{0/50}
Score: 0
User: winniecoder1029
Problemset: ห้องสมุดเมือง 3M
Language: cpp
Time: 0.002 second
Submitted On: 2026-03-04 22:18:09
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
long long amount = 0;
cin >> n;
long long x[n], y[n];
for (int i = 0; i<n; i++) {
cin >> x[i] >> y[i];
amount += y[i] - x[i];
}
// median = amount >> 1
//cout << Lbook;
//start binary search, while amount > 1
long long pivot = 0, testPivot = 0;
long long step = 16777216;
long long Lbook = 0;
while (step > 1) {
testPivot = pivot + step;
Lbook = 0;
for (int i = 0; i<n; i++) {
if (x[i] < testPivot) {
Lbook += min(y[i], testPivot) - x[i];
}
}
//cout << "!!" << pivot << endl;
if (Lbook <= amount/2) {
pivot += step;
}
step/=2;
}
cout << pivot;
return 0;
}