Ветчина
Ограничения: время – 1s/2s, память – 64MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод
Послать решение Blockly Посылки Темы Где Обсудить (0)
Мелита только что вернулась с ежегодного забоя свиней. Не волнуйтесь, это обычная вещь в Хорватии.
Главное было обилие пищи! Было всё, начиная с хорошей пряной колбасы, ветчины, кровяной колбасы до тройной колбасы,
высокого качества бекона и шкварок, всё с тёплым белым хлебом и маслом.
После этих закусок настало время для глубокого горшка с сармой,
а также большого блюда из жареной свинины, такой мягкой, что она почти тает во рту.
Они запивали всё это обильными глотками лучшего сухого белого вина, которое делало их еще более голодными.
Мясник Бейс подал свою призовую ветчину на самый конец. `N` человек, прибывшие на ежегодный забой свиней,
помечены номерами от 1 до `N`. Эти люди уже съели много мяса: `k`-й человека съел `A_k` килограммов мяса
к этому моменту.
Бейс будет раздавать свою ветчину людям в соотношении `B_1\ :\ B_2\ :\ …\ :\ B_N`,
именно в таком порядке, но он еще не знает общее количество (число килограммов) ветчины, которое он будет раздавать.
В конце забоя Человек года будет объявлен. Ранжированный список будет составлен в соответствии с общим
съеденным количеством килограммов мяса. Бейс может повлиять на место в этом списке, выбрав количество раздаваемой ветчины.
Хотя Бейсу предлагались взятки много раз, он отказывался каждый раз, говоря, что он честный человек, который не обидит и мухи.
Бейс заботится о порядке, потому что он хороший джентльмен, и хочет иметь людей в списке
в порядке `1,\ 2,\ 3,\ …,\ N`, начиная с того, кто съел больше всех кг мяса до того, кто съел
меньше. Помогите Бейсу выберать общий вес ветчины, которую он будет раздавать
(в соотношении, что упоминалось ранее), чтобы достичь своего намерения.
Первая строка входного файла содержит целое число `N` (`2\ ≤\ N\ ≤\ 1000`), число конкурентов на титул Человека года.
Каждая из следующих `N` строк содержит целые числа `A_k` и `B_k` (`0\ ≤\ A_k,\ B_k\ ≤\ 10^6`).
По крайней мере одно из чисел `B_k` не будет равно 0.
Первый и единственный строка вывода должна содержать `-1`, если требуемый порядок в списке не может быть достигнут.
В противном случае, вывести действительное
число – необходимое количество ветчины в килограммах между 0 и `10^7` включительно (с округлением до 12 знаков после запятой). Если есть несколько возможных решений, выведите любое.
Пример ввода 1
3
7 1
3 2
10 0
Пример ввода 2
3
2 1
4 0
0 3
Пример ввода 3
5
15 4
6 7
12 5
9 6
1 7
Пояснение к первому примеру: 10.5 кг ветчины раздается в соотношении 1:2:0, что дает нам
3.5, 7 и 0 килограммов ветчины, соответственно. Если добавить к уже съеденому количество мяса, мы получаем,
что участники съедят 10.5, 10 и 10 кг в общей сложности, что является подходящим порядком.
Source: COCI 2013/2014, contest #3