Лесопилка
Ограничения: время – 2s/4s, память – 64MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод
Послать решение Blockly Посылки Темы Где Обсудить (0)
Недавно на лесопилку, где работает Вася поступил
новый заказ. Для постройки нового дома мэру соседнего
города требуется `a` досок длины `x` футов
и `b` досок длины `y` футов.
Поскольку на лесопилке имеется только неограниченный запас досок
длины `z` футов, Васе поручили исполнить заказ клиента, распилив
имеющиеся доски на меньшие. Вася хочет закончить работу как можно
быстрее, поэтому он хочет выполнить заказ, сделав как можно
меньше распилов. При этом количество использованных досок длины
`z` роли не играет, кроме того, часть досок, образовавшихся в результате
распила, может не требоваться для заказа и остаться на лесопилке.
Например, если на лесопилке имеются доски длины `80`, а клиенту
требуется две доски длины `30` и семь досок длины `20`, то достаточно
сделать семь распилов: одну доску распилить двумя распилами
на доски длины `20`, `30` и `30`, одну тремя распилами на четыре доски
длины `20` и одну двумя распилами на доски длины `20`, `20` и `40`.
Доска длины `40` клиенту не нужна, она останется на лесопилке, остальные
доски будут отправлены клиенту.
Ввод
Входной файл содержит целые числа `a`, `x`, `b`, `y` и `z`.
Все числа положительны и не превышают 300, `x\ ≤\ z`, `y\ ≤\ z`, `x\ ≠\ y`.
Вывод
Выведите в выходной файл минимальное количество распилов,
которые требуется сделать для того, чтобы выполнить заказ.
Пример ввода
2 30 7 20 80
Источник: V Всероссийская командная олимпиада школьников по программированию, 2004