Acwing789 数的范围
https://www.acwing.com/problem/content/791/
#include <bits/stdc++.h>
using namespace std;
const int N = 1e5+10;
int x[N];
int main()
{
int n,q;
cin>>n>>q;
for(int i = 0; i < n; i++) cin>>x[i];
while(q--)
{
int a, l = 0, r = n-1;
cin>>a;
// +1 的原因:
// 防止 l = r - 1 时,导致死循环
while(l<r) {// 左边界
int mid = l+r >> 1;
if(x[mid] >= a) r = mid;
else l = mid +1;
}
if(x[l] != a) cout<<"-1 -1"<<endl;
else { // 右边界
cout<<l<<' ';
l = 0, r = n-1;
while(l<r) {
int mid = l+r+1 >> 1;
if(x[mid] <= a) l = mid;
else r = mid -1;
}
cout<<l<<endl;
}
}
return 0;
}