int find(int q)
{//可行区间在左边
//查找最后一个小于等于q的数的下标
int l=0,r=n+1;//开区间
while(l+1<r)//l+1=r时结束
{
int mid=l+r>>1;
if(a[mid]<=q)l=mid;
else r=mid;
}
return l;
}
int find(int q)
{//查找第一个大于等于q的数的下标
int l=0,r=n+1;
while(i+1<r)
{//可行区间在右边
int mid =l+r>>1;
if(a[mid]>=q)r=mid;
else l=mid;
}
return r;
}