queue, segment_tree