AcWing 789. 数的范围
原题链接
简单
作者:
永远热爱
,
2021-03-13 23:59:22
,
所有人可见
,
阅读 365
#include<iostream>
using namespace std;
const int N=100010;
int a[N];
int main()
{
int n,k;
cin>>n>>k;
for(int i=0;i<n;i++)cin>>a[i];
while(k--)
{
int m;
cin>>m;
int l=0,r=n-1;
while(l<r)
{
int mid=(l+r)/2;
if(a[mid]>=m)r=mid;
else l=mid+1; // 这个要注意是mid+1 注意边界
}
if(a[l]!=m)cout<<"-1 -1"<<endl;
else
{
cout<<l<<' ';
l=0,r=n-1;
while(l<r)
{
int mid=(l+r+1)/2;
if(a[mid]<=m) l=mid;
else r=mid-1;//这个要注意是mid-1 记住 l=mid那么r=mid-1;r=mid那么l=mid+1 反正是注意边界问题
}
cout<<l<<endl;
}
}
return 0;
}