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
*/