features:
let...
- N be the size of ranges inside the struct
- k be the size of output
- IntervalSet(ll L, ll R): $O(1)$
- template<T> void insert(T L, T R) : $O(\log{N})$
- template<T> T remove(T L, T R): $O(\log{N})$
- template<T> T covered_length(): $O(\log{N})$
- template<T> T covered_length(T L, T R): $O(\log{N})$
- template<T> int size(): $O(\log{N})$
- template<T> int size(T L, T R): $O(\log{N})$
- bool intersects(T L, T R): $O(\log{N})$
- bool contains(T i): $O(\log{N})$
- vector<pair<T,T>> enumerate(T L, T R): $O(k+ \log{N})$
if I am still feeling okay...
- split
- next_gap
- next_interval
- clear
- ~IntervalSet()
features:
let...
if I am still feeling okay...