Ограничение по времени: 2.000 секунд
Ограничение по памяти: 100.000 мегабайт
В этот новый год можно сделать ставку на Деда Мороза, на то успеет ли он поздравить всех детей или нет. Гриша решил испытать удачу, поставив несколько монет на исход забега. Разумеется, просто так тратить деньги он не собирается, и поэтому он твердо решил, что сделает ставку только в том случае, если сможет остаться в выигрыше при любом исходе состязаний.
Гриша решил потратить на ставку n монет: какую-то часть из них он поставит на то, что Дед Мороз успеет, остальное — что не успеет. Изначально известны только x и y — коэффициент, на который умножится поставленная сумма в первом и втором случаях. Помимо этого игроку будет возмещена полная стоимость той части ставки, которая была потрачена на произошедший исход.
То есть, например, если на успех было поставлено a монет, и Дед Мороз действительно успел, то Гриша получит a + x · a монет, а если не успел, то (n − a) + y · (n − a) монет.
Гриша не очень силён в математике, так что вам придётся помочь ему понять, можно ли распределить монеты так, чтобы полученная им сумма была строго больше поставленной при любом результате. Также ему интересно, какую максимальную сумму он может выиграть при наилучшем для него исходе. Если это возможно, то его интересуют все такие способы разбить монеты.
В первой строке находится одно целое число n — количество монет (1 ⩽ n ⩽ 109).
Во второй строке находятся два вещественных числа x и y — коэффициенты на успех и поражение Деда Мороза, (10−5 ⩽ x,y ⩽ 104, число знаков после запятой не превышает 5).
Если невозможно распределить монеты так, чтобы гарантированно остаться в выигрыше, в единственной строке выведите число −1
.
Иначе в первой строке выведите одно вещественное число — максимально возможный выигрыш при наилучшем исходе (при этом при альтернативном исходе Гриша все равно должен остаться в плюсе). Абсолютная или относительная погрешность этого числа не должна превышать 10−6.
Во второй строке выведите k — число разбиений, при которых достигается максимальный выигрыш. В каждой из следующих k строк выведите по два числа a и b — количество монет, поставленных на выигрыш, и количество монет, поставленных на проигрыш. Разбиения не должны повторяться. Разбиения должны быть выведены в порядке возрастания суммы, поставленной на успех. Гарантируется, что число таких разбиений конечно.
input | output |
---|---|
6 1 2 |
-1 |
8 3 1 |
12.0000000 1 3 5 |