fork download
  1. array = [0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,9]
  2.  
  3. def upper(a, val, left, right):
  4. if left == right:
  5. return left
  6. mid = (left + right + 1) // 2
  7.  
  8. if a[mid] > val:
  9. return upper(a, val, left, mid-1)
  10. else:
  11. return upper(a, val, mid, right)
  12.  
  13. for i in range(10):
  14. print upper(array, i , 0, len(array)-1)
Success #stdin #stdout 0.01s 7272KB
stdin
Standard input is empty
stdout
1
3
5
7
9
11
13
15
15
16