fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. vector<int> fr(int *arr,int n,int t){
  4. int l=0,r=n-1;
  5. int f1=-1,l1=-1;
  6. while(l<=r){
  7. int m=(l+r)/2;
  8. if(arr[m] < t){
  9. l=m+1;
  10. }else if(arr[m] > t){
  11. r=m-1;
  12. }else{
  13. f1=m;
  14. r=m-1;
  15. }
  16. }
  17.  
  18. l=0, r=n-1;
  19. while(l<=r){
  20. int m=(l+r)/2;
  21. if(arr[m] < t){
  22. l=m+1;
  23. }else if(arr[m] > t){
  24. r=m-1;
  25. }else{
  26. l1=m;
  27. l=m+1;
  28. }
  29. }
  30.  
  31. return {f1,l1};
  32. }
  33.  
  34. int main(){
  35. int arr[]={1,2,2,2,3,4,5};
  36. int n=7,t=2;
  37. vector<int> res=fr(arr,n,t);
  38. cout<<res[0]<<" "<<res[1]<<"\n";
  39. return 0;
  40. }
  41.  
Success #stdin #stdout 0.01s 5288KB
stdin
Standard input is empty
stdout
1 3