Your IP : 18.191.171.72
U
e5d� � @ sZ d Z ddd�Zd
dd�Zddd�Zdd d
�ZzddlT W n ek
rL Y nX eZeZdS )zBisection algorithms.� Nc C s t | |||�}| �||� dS )z�Insert 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.
N)�bisect_right�insert��a�x�lo�hi� r �/usr/lib64/python3.8/bisect.py�insort_right s r c C sT |dk rt d��|dkr t| �}||k rP|| d }|| | k rF|}q |d }q |S )a� Return 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.
r �lo must be non-negativeN� � ��
ValueError�len�r r r r Zmidr r r
r s
r c C s t | |||�}| �||� dS )z�Insert 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.
N)�bisect_leftr r r r r
�insort_left$ s r c C sT |dk rt d��|dkr t| �}||k rP|| d }| | |k rJ|d }q |}q |S )a� Return 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.
r r Nr
r r r r r r
r 1 s
r )�*)r N)r N)r N)r N) �__doc__r r r r Z_bisect�ImportErrorZbisectZinsortr r r r
�<module> s