fork download
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. //returns the index i such that array[i] = i;
  6. //if no such element exists, return -1
  7. int getMagicIndex(int array[], int low, int high)
  8. {
  9. if( low > high )
  10. return -1;
  11.  
  12. int mid = low + (high-low)/2;
  13. cout << "check" << endl;
  14.  
  15. if ( array[mid] == mid )
  16. return mid;
  17. if( mid > array[mid] )
  18. return getMagicIndex(array, mid+1, high);
  19. else
  20. return getMagicIndex(array, low, mid-1);
  21. }
  22.  
  23. int main()
  24. {
  25. int array[] = {-20, -10, 0, 5, 10, 15, 20, 25, 30, 35, 40};
  26. int magicInd = getMagicIndex(array, 0, 11);
  27. cout << magicInd << endl;
  28. return 0;
  29. }
Success #stdin #stdout 0s 3460KB
stdin
Standard input is empty
stdout
check
check
check
-1