#include <iostream> #include <vector> using namespace std;
pair<int, int> findRange(const vector<int>& arr, int target) { int n = arr.size(); int left = -1, right = -1;
}
int main() { int n, q; cin >> n >> q;
}
pair<int, int> findRange(const vector<int>& arr, int target) { int n = arr.size(); int left = -1, right = -1;
// 寻找起始位置
int low = 0, high = n - 1;
while (low <= high) {
int mid = low + (high - low) / 2;
if (arr[mid] < target) {
low = mid + 1;
} else if (arr[mid] > target) {
high = mid - 1;
} else {
left = mid;
high = mid - 1; // 继续寻找左边界
}
}
// 寻找终止位置
low = 0, high = n - 1;
while (low <= high) {
int mid = low + (high - low) / 2;
if (arr[mid] < target) {
low = mid + 1;
} else if (arr[mid] > target) {
high = mid - 1;
} else {
right = mid;
low = mid + 1; // 继续寻找右边界
}
}
return {left, right};}
int main() { int n, q; cin >> n >> q;
vector<int> arr(n);
for (int i = 0; i < n; ++i) {
cin >> arr[i];
}
for (int i = 0; i < q; ++i) {
int target;
cin >> target;
pair<int, int> result = findRange(arr, target);
cout << result.first << " " << result.second << endl;
}
return 0;}
0 回复
0 转发
0 喜欢
1 阅读



