Submission

Status:
[PP-SS][SSSSS][SSSSSSSSSS]

Score: 0

User: krittaphot

Problemset: ห้องสมุดเมือง 3M

Language: cpp

Time: 0.002 second

Submitted On: 2025-03-15 22:30:04

#include <bits/stdc++.h>

using namespace std;

int solve(vector<pair<int,int>> &v,int mid)
{
	long long cnt = 0;
	for(auto &i : v){
		if(mid > i.first){
			cnt += min(i.second-i.first,mid-i.first+1);
		}
	}
	return cnt;
}

int main()
{
	int n;
	cin >> n;
	vector<pair<int,int>> v(n);
	long long total = 0;
	for(int i = 0;i<n;i++){
		cin >> v[i].first >> v[i].second;
		total += v[i].second - v[i].first;
	}
	
	long long median = total/2;
	int left = 0,right = 20000000,ans;
	while(left <= right){
		int mid = left +(right-left)/2;
		if(solve(v,mid) < median){
			left = mid+1;
		}
		else
		{
			ans = mid;
			right = mid-1;
		}
	}
	
	cout << ans;
}