fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int lower_bound(int a[], int start, int end)
  4. {
  5. int l= start;
  6. int r = end;
  7. while(l<r)
  8. {
  9. int m = (l+r)/2;
  10. if(a[m]==1&&a[m-1]==0)
  11. return m;
  12. if(a[m]==1&&a[m-1]==1)
  13. r = m;
  14. else
  15. l =m;
  16. if(l==r-1)
  17. break;
  18. }
  19. if(l==r-1&&a[l]==0&&a[r]==1)
  20. return r;
  21. return -1;
  22. }
  23. int main()
  24. {
  25. int start =0,end=1000;
  26. int a[end];
  27. for(int i=0;i<999;i++)
  28. a[i] =0;
  29. for(int i=999;i<1000;i++)
  30. a[i] =1;
  31. int ptr = lower_bound(a,start,end-1);
  32. cout<<ptr;
  33. }
Success #stdin #stdout 0s 16048KB
stdin
Standard input is empty
stdout
999