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