#include <iostream>

using namespace std;

int getGEIndex(int *nArray, int n, int val) {
  if(nArray==NULL)
    return -1;

  int low = 0;
  int high = n-1;
  int mid = (low+high)/2;

  while(low<high) {
    if(val==nArray[mid])
      return mid;
    else if(val>nArray[mid])
      low = mid+1;
    else
      high = mid-1;

    mid = (low+high)/2;
  }

  if(val>nArray[mid]) {
    if(mid<n-1)
      return mid+1;
    else
      return -1;
  }

  return mid;
}

int main(int argc, char **argv) {
  int array[] = {1,2,4,6,7,9,11,13,15,60};

  for(int i=0; i<10; i++)
    cout << array[i] << " ";
  cout << endl;

  for(int i=0; i<65; i++) {
    int result = getGEIndex(array, 10, i);
    if(result>-1)
      cout << "For " << i << ": Index: " << result << "; Value: " << array[result] << endl;
    else
      cout << "For " << i << ": No result" << endl;
  }

  return 0;
}
