fork(1) download
  1. #include <iostream>
  2.  
  3. int upperBound(int* array, int fromIndex, int toIndex, int key) {
  4. int low = fromIndex-1, high = toIndex;
  5. while (low+1 != high)
  6. {
  7. int mid = (low+high) >> 1;
  8. if (array[mid]> key) high=mid;
  9. else low=mid;
  10. }
  11. int p = low;
  12. if ( p >= toIndex || array[p] != key )
  13. p=-1;//no key found
  14. return p;
  15. }
  16.  
  17. int main() {
  18. int arr[2] = {2, 3};
  19. std::cout << upperBound(arr, 0, 1, 3) << std::endl;
  20. return 0;
  21. }
Success #stdin #stdout 0s 15232KB
stdin
Standard input is empty
stdout
-1