День 2. Дерево отрезков и сканирующая прямая

  1. C/C++
    1. merge, lower_bound, upper_bound, sort
    2. Передача компаратора

  2. Дерево отрезков
    1. С операциями снизу
    2. Динамическое (и снизу, и сверху)
    3. Персистентное (только сверху)
    4. Групповые операции (напоминание)
    5. Дерево отрезков сортированных массивов, количество точек в прямоугольнике
    6. Дерево отрезков декартовых деревьев

  3. Сканирующая прямая и немного геометрии
    1. Площадь объединения прямоугольников
    2. Количество точек в прямоугольнике в offline
    3. Количество точек в прямоугольнике в online с персистентной сканирующей прямой
    4. Поиск пересекающихся отрезков на плоскости (и история про компаратор в set)
    5. Поиск объединения невыпуклых многоугольников
    6. Даны n непересекающихся отрезков и m направлений из (0,0) для каждого найти направления найти ближайший отрезок