二分法
#include<iostream>
using namespace std;
const int N=1e5+10;
int a[N],st[N];
int num=0;
int main(){
int n,q;
cin>>n>>q;
for(int i=1;i<=n;i++){
cin>>a[i];
st[a[i]]==1;
}
while(q--){
int k;
cin>>k;
if(st[x]==0){//判断输入的值是否在数组里
cout<<"-1 -1\n";
continue;
}
int l=1,r=n;
while(l<r){
int mid=(l+r)/2;//求左边界
if(a[mid]>=k){
r=mid;
}else
l=mid+1;
}
cout<<l-1<<" ";//从0开始计数
l=1,r=n;
while(l<r){
int mid=(l+r+1)/2;//求右边界
if(a[mid]<=k){
l=mid;
}else
r=mid-1;
}
cout<<r-1<<endl;
}
}