Стрельба по телевизорам

Было дано множество прямоугольников, расположенных вдоль оси $$$ox$$$ и множество точек. Нужно было определить, сколько точек попадают в прямоугольники или лежит на границе.

Сначала выпишем в отдельный массив координаты всех правых верхних углов прямоугольников, и отсортируем точки запросов. Теперь будем идти двумя указателями. Для каждой очередной точки запроса, будем поддерживать указатель на прямоугольник под этой точкой, то есть на такой самый левый прямоугольник, что его правый верхний угол находится левее нашей точки (или имеет такую же $$$x$$$ координату).

Для каждой точки будем увеличивать указатель на прямоугольник, пока правый верхний угол текущего прямоугольника левее, чем точка запроса. Теперь мы знаем, какой прямоугольник лежит под нашей точкой, и можем легко определить, попадаем ли мы на границу. Нужно учесть случай, когда точка запроса находится на той же $$$x$$$ координате, что и правый верхний угол прямоугольника, и точка попадает на границу следующего прямоугольника. Если полоса прямоугольников закончилась, новые точки запросов можно не рассматривать.

Альтернативным решением было просто для каждой точки находить двоичным поиском прямоугольник внизу, тогда не требовалось сортировать точки изначально.