Find index of smallest number greater than i
while ( $ l <= $ r ) { $ m = ( $ l + $ r ) / 2 ; if ( $ arr [ $ m ] < $ i ) { $ findex = $ m ; $ l = $ m + 1 ; } else $ r = $ m - 1 ; } $ l = 1 ; $ r = $ n ; $ flag = false ;