@
rt,区间左闭右开 注意右端点初值为max+1(右边开区间 小于等于这个数(或刚好满足或差一点满足check)
while(l<r){ int mid=(l+r)>>1; if(check(mid)){ l=mid; }else r=mid; } return l;