Submission
Status:
[PP-SS][SSSSS][SSSSSSSSSS]
Subtask/Task Score:
{0/20}{0/30}{0/50}
Score: 0
User: Seng
Problemset: ห้องสมุดเมือง 3M
Language: cpp
Time: 0.002 second
Submitted On: 2026-05-26 19:14:01
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using pll = pair<ll, ll>;
vector<pll> v;
map<long long, long long> m;
int main(){
ios::sync_with_stdio(0);cin.tie(0);
int n;cin >> n;
long long cnt = 0;
long long ymx = LLONG_MIN;
while(n--){
ll x, y;cin >> x >> y;
if(!v.empty()){
for(auto [f, l] : v){
if(l == x){
auto it = find(v.begin(), v.end(), pll{f, l});
v.erase(it);
v.push_back({f, y});
}
else if(f == y){
auto it = find(v.begin(), v.end(), pll{f, l});
v.erase(it);
v.push_back({x, l});
}
else if(y > l && x <= l && x >= f){
auto it = find(v.begin(), v.end(), pll{f, l});
v.erase(it);
v.push_back({f, y});
}
else if(x < f && y >= f && y <= l){
auto it = find(v.begin(), v.end(), pll{f, l});
v.erase(it);
v.push_back({x, l});
}
else if(x <= f && y >= l){
auto it = find(v.begin(), v.end(), pll{f, l});
v.erase(it);
v.push_back({x, y});
}
else if(x >= f && y <= l) continue;
else v.push_back({x, y});
}
}
else v.push_back({x, y});
ymx = max(ymx, y);
}
for(auto [f, l] : v){
for(long long i = f; i < l; i++){
m[i]++;
cnt++;
}
//cout << f << " " << l << '\n';
}
long long i = 0;
while(m[i] < cnt/2 && i <= ymx){
i++;
m[i] += m[i-1];
//cout << "m[" << i << "] = " << m[i] <<",";
}
//cout << '\n';
//cout << "cnt = " << cnt << '\n';
cout << i;
}