Submission
Status:
[PP-SS][SSSSS][SSSSSSSSSS]
Subtask/Task Score:
{0/20}{0/30}{0/50}
Score: 0
User: Ryuthin94
Problemset: ห้องสมุดเมือง 3M
Language: cpp
Time: 0.003 second
Submitted On: 2026-03-12 12:41:37
#include <bits/stdc++.h>
using namespace std;
using pii = pair<long long, long long>;
int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n;
cin >> n;
vector<pii> range;
long long total = 0;
long long min_x = LLONG_MAX, max_y = LLONG_MIN;
for (int i = 0; i < n; i++)
{
long long x, y;
cin >> x >> y;
range.push_back({x, y});
total += (y - x); // interval [x, y)
min_x = min(min_x, x);
max_y = max(max_y, y);
}
auto getIndex = [&](long long val)
{
long long result = 0;
for (auto [x, y] : range)
{
if (val <= x)
continue;
result += min(val, y) - x;
}
return result;
};
long long target = total / 2;
long long l = min_x, r = max_y;
while (l < r)
{
long long mid = l + (r - l) / 2;
if (getIndex(mid) < target)
l = mid + 1;
else
r = mid;
}
cout << l - 1 << '\n';
}