Yf# @sdZddddZeZddddZeZddddZddd d Zydd lTWnek r|YnXdS) zBisection algorithms.NcCs|dkrtd|dkr0t|}xA||krs||d}|||krf|}q3|d}q3W|j||dS)zInsert item x in list a, and keep it sorted assuming a is sorted. If x is already in a, insert it to the right of the rightmost x. Optional args lo (default 0) and hi (default len(a)) bound the slice of a to be searched. rzlo must be non-negativeN) ValueErrorleninsert)axlohimidr +/opt/alt/python35/lib64/python3.5/bisect.py insort_rights     rcCsx|dkrtd|dkr0t|}xA||krs||d}|||krf|}q3|d}q3W|S)aReturn the index where to insert item x in list a, assuming a is sorted. The return value i is such that all e in a[:i] have e <= x, and all e in a[i:] have e > x. So if x already appears in the list, a.insert(x) will insert just after the rightmost x already there. Optional args lo (default 0) and hi (default len(a)) bound the slice of a to be searched. rzlo must be non-negativeNrr)rr)rrr r r r r r bisect_rights     rcCs|dkrtd|dkr0t|}xA||krs||d}|||krj|d}q3|}q3W|j||dS)zInsert item x in list a, and keep it sorted assuming a is sorted. If x is already in a, insert it to the left of the leftmost x. Optional args lo (default 0) and hi (default len(a)) bound the slice of a to be searched. rzlo must be non-negativeNrr)rrr)rrr r r r r r insort_left/s      rcCsx|dkrtd|dkr0t|}xA||krs||d}|||krj|d}q3|}q3W|S)aReturn the index where to insert item x in list a, assuming a is sorted. The return value i is such that all e in a[:i] have e < x, and all e in a[i:] have e >= x. So if x already appears in the list, a.insert(x) will insert just before the leftmost x already there. Optional args lo (default 0) and hi (default len(a)) bound the slice of a to be searched. rzlo must be non-negativeNrr)rr)rrr r r r r r bisect_leftCs      r)*) __doc__rZinsortrZbisectrrZ_bisect ImportErrorr r r r s