Задача №113220. Обитаемые горы
По мотивам фантастической повести
А. и Б. Стругацких «Обитаемый остров»
Правительство страны Неизвестных Отцов планирует построить в гористом районе на границе с Хонтией башню противобаллистической защиты.
Участок горной цепи в этом районе представлен ломаной, состоящей из n звеньев, последовательно соединяющих \(n\) + 1 вершину. Вершины пронумерованы числами от \(0\) до \(n\) в порядке возрастания координаты \(x\). Звенья пронумерованы числами от 1 до \(n\), при этом \(i\)-е звено соединяет вершины с номерами \(i\) − 1 и \(i\).
Вершина с номером 0 находится в точке (0, 0). Звено с номером \(i\) задано двумя числами \(d_i\) — длиной проекции на ось \(x\) и \(k_i\) — угловым коэффициентом. Таким образом, если вершина с номером \(i\) − 1 имеет координаты \((x_{i−1}, y_{i−1})\), то координаты \(i\)-й вершины можно вычислить как \((x_{i − 1} + d_i , y_{i−1} + k_i · d_i)\). Последняя вершина лежит на оси \(x\), то есть \(y_n = 0\).
Башня представлена вертикальным отрезком ненулевой длины, нижняя точка которого расположена на ломаной. Гражданин страны Неизвестных Отцов чувствует себя в безопасности, если верхняя точка башни находится в его прямой видимости.
Пусть верхняя точка башни имеет координаты (\(x, y\)). Два разведчика выбегают из нижней точки башни соответственно на запад (в направлении уменьшения координаты \(x\)) и на восток (в направлении увеличения координаты \(x\)). Каждый разведчик бежит по поверхности горной цепи до тех пор, пока дальнейшее перемещение не выводит верхнюю точку башни из его прямой видимости или до границы горной цепи.
Правительство подготовило \(q\) вариантов расположения башни, каждый из которых характеризуется двумя целыми числами (\(u_j , v_j\)) — координатами верхней точки башни. Требуется написать программу, которая для каждого варианта определяет \(x\)-координаты двух точек, до которых добегут разведчики.
Первая строка входных данных содержит два числа \(n\) и \(q\) (\(1 \le n, q \le 400 000\)) — количество звеньев ломаной и количество вариантов расположения башни.
Ограничения на величины последующих входных данных зависят от значения константы \(C\), которая может быть равна \(10^4\) или \(10^9\) в зависимости от подзадачи (см. таблицу системы оценивания).
Каждая из последующих \(n\) строк содержит по два целых числа \(d_i , k_i (1 \le d_i \le C; −C \le k_i \le C\)) — проекцию на ось \(x\) и угловой коэффициент \(i\)-го звена ломаной (\(0 = x_0 < x_1 < \cdots < x_i < \cdots < x_n \le C; y_0 = y_n = 0; −C \le y_i \le C\)).
Каждая из последующих \(q\) строк содержит по два целых числа \(u_j, v_j (0 \le u_j \le C, −C \le v_j \le C\)) — координаты верхней точки башни в \(j\)-м варианте расположения.
Выходные данные должны содержать \(q\) строк, в каждой из которых находятся по два целых числа \(l_j\) и \(r_j\) — \(x\)-координаты двух точек, до которых добегут разведчики, направляющиеся на запад и на восток соответственно в \(j\)-м варианте расположения башни. Гарантируется, что числа \(l_j\) и \(r_j\) являются целыми.
6 1 3 1 2 -1 1 1 1 -1 1 1 2 -1 5 3
3 8
5 3 1 1 1 -2 2 0 2 1 1 -1 3 0 3 5 3 3
1 6 0 7 0 6
6 4 1 2 2 -2 1 1 1 -2 4 1 1 -1 1 4 3 4 10 4 7 4
0 4 1 9 4 10 1 10
8 4 1 -3 2 0 1 1 2 0 1 -3 1 3 1 2 1 0 2 -2 6 -1 6 4 7 -4
0 6 4 9 0 10 6 9