AcWing 789. 数的范围
原题链接
简单
作者:
Lucky.
,
2021-05-18 20:04:37
,
所有人可见
,
阅读 278
C++ 代码
#include <iostream>
using namespace std;
const int N = 1e5+10;
int x;
int n,m;
int a[N];
int SL()//查找左边界的下标
{
int l = 0,r = n - 1;
while(l < r)
{
int mid = l + r >> 1;
if(a[mid] >= x) r = mid;
else l = mid + 1;
}
return l;
}
int SR()//查找右边界的下标
{
int l = 0,r = n - 1;
while(l < r)
{
int mid = l + r + 1 >> 1;
if(a[mid] <= x)l = mid;
else r = mid - 1;
}
return l;
}
int main()
{
cin >> n >> m;
for(int i = 0; i < n; i++) cin >> a[i];
while(m -- )
{
cin >> x;
int l = SL();
int r = SR();
if(a[l] != x) cout << "-1 -1" << endl;
else cout << l << " " << r << endl;
}
return 0;
}