AcWing 789. 数的范围
原题链接
简单
作者:
baoo
,
2024-12-29 12:43:11
,
所有人可见
,
阅读 1
#include<iostream>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<cstdio>
using namespace std;
const int N=100000+10;
int n,q,k,a[N];
int check_left(int 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) return -1;
return l;
}
int check_right(int k)
{
int l=0,r=n-1;
while(l<r)
{
int mid=(l+r+1)>>1;
if(a[mid]<=k)
l=mid;
else
r=mid-1;
}
if(a[l]!=k) return -1;
return l;
}
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=check_left(k);
if(l==-1)
{
printf("-1 -1\n");
continue;
}
int r=check_right(k);
printf("%d %d\n",l,r);
}
}