AcWing 789. 数的范围
原题链接
简单
作者:
走不到也得走
,
2020-01-12 15:50:45
,
所有人可见
,
阅读 509
#include<iostream>
using namespace std;
int n,q,k;
const int N=1e5+10;
int a[N];
int main()
{
scanf("%d %d",&n,&q);
for(int i=0;i<n;i++)scanf("%d",&a[i]);
while(q--)
{
scanf("%d",&k);
int l=0,r=n-1;
while(l<r)//找起点
{
int mid=l+r>>1;
if(a[mid]>=k)r=mid;//对应的右边坐标变化
else l=mid+1;
}
if(a[l]!=k){cout<<"-1 -1"<<endl;}
else{cout<<l;
l=0,r=n-1;
while(l<r)//找终点
{
int mid=l+r+1>>1;
if(a[mid]<=k)l=mid;//对应的左边坐标变化
else r=mid-1;
}
cout<<" "<<r<<endl;
}
}
return 0;
}