如果你二分是这样写的:
int l=1,r=n; while (l<r) { int mid=(l+r+1)>>1; if (a[mid].num>=x) l=mid; else r=mid-1; } return l;
可能会喜提 58 分。把二分改成以下就能过了
int l=1,r=n; while (l<=r) { int mid=(l+r)>>1; if (a[mid].num>=x) l=mid+1; else r=mid-1; } return r;