Ограничения: время – 2s/3s, память – 256MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод 
Послать решение Blockly Посылки Темы Где Обсудить (0) 
Всем известно, что в городах есть большая проблема — пробки.
Пробка образуется, когда по дороге пытаются ехать сразу много
машин. При этом основная причина образования пробок — перекрестки.
Самые большие пробки образуются именно на них.
В одном городе на перекрестке, на котором пересекаются
две односторонние дороги, решили установить светофор.
В каждый момент светофор либо горит зеленым для машин на
первой дороге, либо горит зеленым для машин на второй дороге, либо переключается
между этими режимами. По правилам дорожного движения, в моменты переключения
светофора можно ехать по любой дороге.
Светофор устроен следующим образом. В момент времени 0 он загорается зеленым
для машин на первой дороге и красным для машин на второй дороге.
Далее, через g секунд он переключается на красный для машин на первой дороге и зеленый
для машин на второй дороге, после чего через r секунд
переключается обратно на зеленый для первой дороги, и т. д.
Таким образом, светофор горит зеленым для первой дороги в моменты времени
( для целых k и зеленым для второй дороги —
в (\ k(r\ +\ g)\ +\ g,\ (k\ +\ 1)(r\ +\ g)\ ).
Переключения же происходят в моменты k(r\ +\ g) и k(r\ +\ g)\ +\ g.
Когда светофор горит зеленым для первой дороги, по ней могут ехать машины,
а по второй — нет, и наоборот. Будем считать что в момент переключения, могут проезжать машины
с обеих дорог. Считается что машина проехала в момент переключения, если момент, когда
она проехала, и момент переключения отличаются не более чем на 10^{-5}.
В соответствии с технической документацией период работы светофора зафиксирован
и должен быть равен x, иначе говоря, должно выполняться равенство r\ +\ g\ =\ x.
С соблюдением этого условия значения r и g можно выбрать любыми неотрицательными
вещественными числами.
Для выбора оптимальных значений r и g было проведено исследование
трафика на дорогах и получены следующие данные.
На каждой из дорог находится несколько машин, которые едут в сторону перекрестка.
Машины не обгоняют друг друга. Каждый раз, когда машина
догоняет более медленную, она снижает скорость и следует непосредственно за ней
с соответствующей скоростью. Размерами машин и временем на изменение скорости
можно пренебречь. Когда машина подъезжает к перекрестку, если горит зеленый свет или
происходит переключение, то она немедленно проезжает перекресток.
В противном случае машина останавливается и ждет включения зеленого света.
В момент 0 на первой дороге расположены n машин, i-я из них
находится на расстоянии a_i метров от перекрестка и движется в его сторону
со скоростью v_i м/с.
Аналогично, на второй дороге расположены m машин, i-я из них
находится на расстоянии b_i метров от перекрестка и движется в его сторону
со скоростью w_i м/с.
Чтобы пробок в городе было меньше, необходимо выбрать такие g и r, чтобы
максимальное число машин, которые одновременно стоят на перекрестке, было как можно
меньше.
Помогите управлению дорожного движения выбрать оптимальные g и r.
Формат ввода
В первой строке задано вещественное число x (1\ ≤\ x\ ≤\ 10^4), с не более чем тремя знаками после десятичной точки.
Во второй строке задано число n (0\ ≤\ n\ ≤\ 100\ 000) — количество машин на первой дороге.
Далее, в n строках задано описание машин на первой дороге.
Описание каждой машины состоит из двух вещественных чисел a_i и v_i — расстояния от машины до перекрестка
и ее скорости, соответственно (1\ ≤\ a_i,\ v_i\ ≤\ 10^4).
Числа a_i и v_i заданы не более, чем с тремя знаками после десятичной точки.
В следующей строке задано число m (0\ ≤\ m\ ≤\ 100\ 000, 1\ ≤\ n\ +\ m\ ≤\ 100\ 000) — количество машин на второй дороге.
Далее, в m строках задано описание машин на второй дороге.
Описание каждой машины состоит из двух вещественных чисел b_i и w_i — расстояния от машины до перекрестка
и ее скорости, соответственно (1\ ≤\ b_i,\ w_i\ ≤\ 10^4).
Числа b_i и w_i заданы не более, чем с тремя знаками после десятичной точки.
Никакие две машины исходно не находятся в одной точке.
Оба списка машин даны в порядке возрастания расстояния до светофора.
Формат вывода
На первой строке выходного файла выведите минимальное k, такое что выбором g и r можно добиться,
чтобы на перекрестке никогда не стояло одновременно более k машин.
На второй строке выведите два вещественных числа g и r, позволяющие добиться искомого.
Следует выводить g и r не менее чем с 6 знаками после десятичной точки.
Если существует несколько оптимальных
решений, выведите любое.
Пример ввода 1
2.0
1
1.0 1.0
2
1.0 1.0
2.0 2.0
Пример вывода 1
0
1.00000 1.00000
Пример ввода 2
4.0
3
2.0 1.0
4.0 5.0
5.0 20.0
3
1.0 1.0
5.0 1.0
7.0 1.0
Пример вывода 2
1
2.00000 2.00000
В первом примере все машины подъезжают к перекрестку в момент 1. Сделав
переключение светофора как раз в этот момент можно обеспечить проезд
всех машин без ожидания.
Во втором примере на первой дороге ситуация развивается следующим образом.
Сначала через 1/15 секунды третья машина догоняет вторую и ей приходится
снизить скорость до 5 м/с. Затем они вместе догоняют первую машину в момент 0.5,
им обеим приходится снизить скорость до 1 м/с. Так вместе они и подъезжают
к перекрестку через 2 секунды после начала движения.
На второй дороге машины движутся с равной скоростью и подъезжают к перекрестку
через 1, 5 и 7 секунд после начала движения, соответственно. При любом выборе g
и r хотя бы одной машине придется ждать.
Оптимально выбрать любое значение g от 2 до 3, включительно.
В этом случае ждать будут первая и вторая машины на второй дороге,
но одновременно на перекрестке будет находиться не более одной машины.
Если выбрать g\ <\ 2, то придется ждать трем машинам на первой дороге,
а если выбрать g\ >\ 3, то вторая и третья машины на второй дороге будут одновременно
ждать на перекрестке.
Источник: XIX Командный чемпионат школьников Санкт-Петербурга по программированию, 2011