int find(int a[],int k){
int l=0,r=n-1;
while(l<r){
int mid=(l+r+1)/2;
if(a[mid]<=k){
l=mid;
}
else{
r=mid-1;
}
}
if(a[l]>k) return -1;
return a[l];
}
大于等于k的最小值:lower_bound(first,last,val);
ex:lower_bound(a,a+10,k);
大于k的最小值:upper_bound(first,last,val);