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;
}