Loading... ``` #include <iostream> using namespace std; const int N = 1e5 + 10; int n, q, k, arr[N]; int qurL(int tar) { int l = 0, r = n - 1; while(l <= r) { int mid = ((r - l) >> 1) + l; if (arr[mid] > tar) r = mid - 1; else if (arr[mid] < tar) l = mid + 1; else if (arr[mid] == tar) r = mid - 1; } return arr[l] == tar ? l : -1; } int qurR(int tar) { int l = 0, r = n - 1; while(l <= r) { int mid = ((r - l) >> 1) + l; if (arr[mid] > tar) r = mid - 1; else if (arr[mid] < tar) l = mid + 1; else if (arr[mid] == tar) l = mid + 1; } return arr[r] == tar ? r : -1; } int main () { ios::sync_with_stdio(0); cin.tie(0); cin >> n >> q; for (int i = 0; i < n; ++i) cin >> arr[i]; while(q--) { cin >> k; cout << qurL(k) << ' ' << qurR(k) << '\n'; } return 0; } ``` 最后修改:2024 年 08 月 08 日 © 允许规范转载 赞 如果觉得我的文章对你有用,请随意赞赏