AcWing 789. 数的范围(lower_bound()和upper_bound()的写法)
原题链接
简单
作者:
RP
,
2021-04-14 18:29:11
,
所有人可见
,
阅读 204
lower_bound()和upper_bound()的写法
#include <bits/stdc++.h>
using namespace std;
const int N = 100010;
int a[N];
int main(){
int n,q,k;
cin>>n>>q;
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
}
while(q--){
cin>>k;
int pos1 = lower_bound(a+1,a+1+n,k)-(a+1);
int pos2 = upper_bound(a+1,a+1+n,k)-(a+1);
if(pos1==pos2)//第一个大于等于k如果等于第一个大于k的那么就说明k不存在
{
cout<<"-1 -1"<<endl;
}else{
cout<<pos1<<" "<<pos2-1<<endl;
}
}
}