思路:
经典二分
代码:
# include<iostream>
using namespace std;
const int N = 100010;
int s[N];
int n,k;
int main()
{
cin >> n >> k;
for(int i = 0;i < n;i++)
{
scanf("%d",&s[i]);
}
while(k--)
{
int x;
scanf("%d",&x);
int l = 0,r = n - 1;
while(l < r)
{
int mid = l + r >> 1;
if(s[mid] >= x) r = mid;
else l = mid + 1;
}
if(s[l] != x)
{
cout << -1 << " " << -1 << endl;
}
else
{
cout << l << " ";
int l = 0,r = n - 1;
while(l < r)
{
int mid = l + r + 1>> 1;
if(s[mid] <= x) l = mid;
else r = mid - 1;
}
cout << l << endl;
}
}
return 0;
}