Вырубка леса
Фермер Николай нанял двух лесорубов: Дмитрия и Федора, чтобы вырубить лес, на месте которого должно быть кукурузное поле. В лесу растут X деревьев. Дмитрий срубает по A деревьев в день, но каждый K-й день он отдыхает и не срубает ни одного дерева. Таким образом, Дмитрий отдыхает в K-й, 2K-й, 3K-й день, и т.д. Федор срубает по B деревьев в день, но каждый M-й день он отдыхает и не срубает ни одного дерева. Таким образом, Федор отдыхает в M-й, 2M-й, 3M-й день, и т.д. Лесорубы работают параллельно и, таким образом, в дни, когда никто из них не отдыхает, они срубают A + B деревьев, в дни, когда отдыхает только Федор — A деревьев, а в дни, когда отдыхает только Дмитрий — B деревьев. В дни, когда оба лесоруба отдыхают, ни одно дерево не срубается. Фермер Николай хочет понять, за сколько дней лесорубы срубят все деревья, и он сможет засеять кукурузное поле. Требуется написать программу, которая по заданным целым числам A, K, B, M и X определяет, за сколько дней все деревья в лесу будут вырублены. Формат входного файла Входной файл содержит пять целых чисел, разделенных пробелами: A, K, B, M и X (1 ≤ A, B ≤ 109, 2 ≤ K, M ≤ 1018, 1 ≤ X ≤ 1018). Формат выходного файла Выходной файл должен содержать одно целое число — искомое количество дней. Пример входных и выходных файлов
Пояснение к примеру В приведенном примере лесорубы вырубают 25 деревьев за 7 дней следующим образом: · 1-й день: Дмитрий срубает 2 дерева, Федор срубает 3 дерева, итого 5 деревьев; · 2-й день: Дмитрий срубает 2 дерева, Федор срубает 3 дерева, итого 10 деревьев; · 3-й день: Дмитрий срубает 2 дерева, Федор отдыхает, итого 12 деревьев; · 4-й день: Дмитрий отдыхает, Федор срубает 3 дерева, итого 15 деревьев; · 5-й день: Дмитрий срубает 2 дерева, Федор срубает 3 дерева, итого 20 деревьев; · 6-й день: Дмитрий срубает 2 дерева, Федор отдыхает, итого 22 дерева; · 7-й день: Дмитрий срубает 2 дерева, Федор срубает оставшееся 1 дерево, итого все 25 деревьев срублены. Внимание! Тест из примера не подходит под ограничения для подзадач 2 и 3, но решение принимается на проверку только в том случае, если оно выводит правильный ответ на тесте из примера. Решение должно выводить правильный ответ на тест даже, если оно рассчитано на решение только каких-либо из подзадач 2 и 3. Система оценки и описание подзадач Подзадача 1 (32 балла) 1 ≤ X ≤ 1000, 1 ≤ A, B ≤ 1000, 2 ≤ K, M ≤ 1000 Баллы за подзадачу начисляются только в случае, если все тесты успешно пройдены. Подзадача 2 (10 баллов) 1 ≤ X ≤ 1018 X < K X < M При решении этой подзадачи можно считать, что лесорубы не отдыхают. Баллы за подзадачу начисляются только в случае, если все тесты успешно пройдены. Подзадача 3 (10 баллов) 1 ≤ X ≤ 1018 Дополнительно к приведенным ограничениям выполняется условие K = M. Баллы за подзадачу начисляются только в случае, если все тесты успешно пройдены. Подзадача 4 (48 баллов) 1 ≤ X ≤ 1018, 1 ≤ A, B ≤ 109, 2 ≤ K, M ≤ 1018 В этой подзадаче 16 тестов, каждый тест оценивается в 3 балла. Баллы за каждый тест начисляются независимо. Получение информации о результатах окончательной проверки По запросу сообщается результат окончательной проверки на каждом тесте.
| |||||||||||
|