最大中求最小
int l;
int r;
while(l<r)
{
int mid=l+r>>1;
if(check(mid))
{
r=mid;
}
else
{
l=mid+1;
}
}
//l r都可,两者相等
最小中求最大
int l;
int r;
while(l<r)
{
int mid=l+r>>1;
if(check(mid))
{
l=mid
}
else
{
r=mid-1;
}
}
//l r都可,两者相等
求最大
long long l=0;
long long r=2*1e9;
while(l<=r)
{
long long mid=l+r>>1;
if(check(mid))
{
l=mid+1;
}
else
{
r=mid-1;
}
}
cout<<l-1<<endl;