Submission

Status:
[-SSSS][SSSSS][SSSSSSSSSS]

Score: 0

User: lufychop

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

Language: cpp

Time: 0.002 second

Submitted On: 2025-03-14 13:42:12

#include <bits/stdc++.h>

using namespace std;

int main(void)
{
	long long n,l=1e18,r=-1,pos=0;
	cin>>n;
	long long x[n],y[n];
	for(int i=0;i<n;i++)
	{
		cin>>x[i]>>y[i];
		l=min(l,x[i]);
		r=max(r,y[i]);
		pos=pos+y[i]-x[i]+1;
	}
	pos=pos/2;
	while(l<=r)
	{
		long long mid=l+(r-l)/2;
		long long cnt=0,cntsame=-1;
		for(int i=0;i<n;i++)
		{
			if(mid>y[i])
			{
				cnt=cnt+y[i]-x[i]+1;
			}
			else if(mid<x[i])
			{
				continue;
			}
			else
			{
				cnt=cnt+mid-x[i]+1;
				cntsame++;
			}
		}
		//cout<<mid<<" "<<cnt<<" "<<cntsame<<"\n";
		if(pos<=cnt && cnt<=pos+cntsame)
		{
			cout<<mid;
			return 0;
		}
		else if(cnt>pos+cntsame)
		{
			r=mid-1;
		}
		else
		{
			l=mid+1;
		}
	}
	cout<<l;
	return 0;
}	
/*
2
0 5
5 15

2
1 3
3 5
*/