0326. Рекламное объявление
Имя входного файла: | advert.in |
Имя выходного файла: | advert.out |
Ограничение по времени: | 2 s |
Ограничение по памяти: | 256 megabytes |
Ивану с детства нравились газеты. У него даже была мечта стать главным редактором газеты. Однажды ему представился шанс осуществить свою мечту. Чтобы устроиться на работу в издательство, ему необходимо выполнить тестовое задание – сверстать рекламное объявление.
Задано поле шириной W и высотой H. Объявление должно состоять из одной или нескольких строк, в которых необходимо разместить в заданном порядке N слов. Про i-е слово известно, что при печати в стандартном масштабе оно занимает прямоугольник шириной ai и высотой bi.
Чтобы объявление выглядело красиво, все слова в нем должны быть напечатаны в одном масштабе. При печати в масштабе k размеры всех слов умножаются на k. Если исходно слово занимало прямоугольник ai *bi, то при печати в масштабе k оно занимает прямоугольник размером (k ⋅ai)*(k ⋅bi). Кроме того, если в строке более одного слова, то все слова в ней должны иметь одинаковую высоту. Разумеется, ни одно слово не должно выходить за границы поля.
На рисунке приведен пример красивого объявления с тремя словами.
Помогите Ивану найти максимальный масштаб, при котором можно сверстать объявление, которое удовлетворяет этим критериям. Обратите внимание, что менять порядок слов нельзя, они должны читаться по строкам сверху вниз, слева направо в том порядке, в котором заданы.
Формат входного файла
В первой строке входного файла дано три числа: N, W и H (1 ≤ N ≤ 100,000, 1 ≤ W, H ≤ 109) – число слов в объявлении, длина и высота объявления. В следующих N строках дано по два целых числа, в i-й из них заданы ai и bi (1 ≤ ai, bi ≤ 109) – ширина и высота i-го слова.
Формат выходного файла
Выведите одно вещественное число k – максимальный масштаб. Ответ требуется вывести с абсолютной или относительной погрешностью не более 10-9. Это значит, что если правильный ответ a, а вы вывели p, то ваш ответ будет засчитан как правильный, если \frac{|a-p|}{\max(|a|, 1)} ≤ 10-6.
Пример:
advert.in | advert.out |
---|---|
3 10 7 4 3 3 2 4 2 | 1.4 |
2 10 1 2 1 3 2 | 0.333333333 |
Источник: Командный чемпионат школьников Карелии по программированию, 4 ноября 2012
Обсудить
Отправить решение
Версия для печати