fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int main() {
  5. int n, target;
  6. cin >> n;
  7. vector<int> ans, nums(n);
  8. for(int i = 0; i < n; i++){
  9. cin >> nums[i];
  10. }
  11.  
  12. cin >> target;
  13. int first = -1, last = -1;
  14. for(int l = 0, r = n - 1; l <= r; ) {
  15. int mid = (l + r) / 2;
  16. if(nums[mid] >= target){
  17. if(nums[mid] == target) first = mid;
  18. r = mid - 1;
  19. } else {
  20. l = mid + 1;
  21. }
  22. }
  23. ans.push_back(first);
  24. for(int l = 0, r = n - 1; l <= r; ) {
  25. int mid = (l + r) / 2;
  26. if(nums[mid] <= target){
  27. if(nums[mid] == target) last = mid;
  28. l = mid + 1;
  29. } else {
  30. r = mid - 1;
  31. }
  32. }
  33. ans.push_back(last);
  34. for(auto it : ans) cout << it << " ";
  35. cout << endl;
  36. }
  37.  
  38.  
Success #stdin #stdout 0.01s 5312KB
stdin
6
5 7 7 8 8 10
8
stdout
3 4