Submission
Status:
[PPPPP][-SSSS][SSSSSSSSSS]
Subtask/Task Score:
{20/20}{0/30}{0/50}
Score: 20
User: Kx
Problemset: ห้องสมุดเมือง 3M
Language: cpp
Time: 0.002 second
Submitted On: 2026-03-17 08:52:25
#include <bits/stdc++.h>
using namespace std;
int n, res = 0;
vector<pair<int, int>> p, g;
int main() {
cin >> n;
p.resize(n);
for(int i = 0; i < n; ++i) {
cin >> p[i].first >> p[i].second;
}
sort(p.begin(), p.end());
for(auto x : p) {
int l = x.first, r = x.second - 1;
if(g.empty() || g.back().second < l) {
g.push_back({l, r});
} else {
g.back().second = max(g.back().second, r);
}
}
int sz = 0;
for(auto x : g) {
sz += (x.second - x.first + 1);
}
sz /= 2;
for(auto x : g) {
int cur_sz = x.second - x.first + 1;
if(sz <= cur_sz && x.second - x.first > 0) {
res = x.first + sz - 1;
break;
} else if(sz <= cur_sz && n == 1){
res = x.first + sz;
break;
} else {
sz -= cur_sz;
}
}
cout << res << '\n';
return 0;
}