eolymp
bolt
Попробуйте наш новый интерфейс для отправки задач
Задачи

Перестройка паутины

Перестройка паутины

Старому пауку захотелось внести разнообразие в свою жизнь. Для этого он решил перестроить свою прямоугольную паутину. Изначально паутина представляет собой прямоугольник размером \textbf{a}×\textbf{b}. За одну секунду паук может сделать одну из следующих операций с паутиной \textbf{x}×\textbf{y}: \begin{enumerate} \item Довязать к паутине полоску \textbf{x}×\textbf{k} так, что получится прямоугольник \textbf{x}×\textbf{(y+k)}, для любого натурального \textbf{k} ≤ \textbf{y}, являющегося делителем числа \textbf{y}. \item Довязать к паутине полоску \textbf{k}×\textbf{y} так, что получится прямоугольник \textbf{(x+k)}×\textbf{y}, для любого натурального \textbf{k} ≤ \textbf{x}, являющегося делителем числа \textbf{x}. \item Отрезать от паутины полоску размером \textbf{x}×\textbf{k} так, что получится прямоугольник \textbf{x}×\textbf{(y-k)}, для любого натурального \textbf{k} < \textbf{y}, являющегося делителем числа \textbf{y}. \item Отрезать от паутины полоску размером \textbf{k}×\textbf{y} так, что получится прямоугольник \textbf{(x-k)}×\textbf{y}, для любого натурального \textbf{k} < \textbf{x}, являющегося делителем числа \textbf{x}. \end{enumerate} Вам известны начальные размеры паутины и размеры, которые хочет получить паук. Ваша задача вычислить, какое минимальное время ему для этого понадобится. Ориентация паутины не имеет значения (\textbf{a}×\textbf{b} и \textbf{b}×\textbf{a} -- одинаковые паутины). \InputFile Четыре целых числа \textbf{a}, \textbf{b}, \textbf{c}, \textbf{d} (\textbf{1} ≤ \textbf{a}, \textbf{b}, \textbf{c}, \textbf{d} ≤ \textbf{10^5}). \OutputFile Единственное число -- минимальное время в секундах, необходимое для перестройки паутины \textbf{a}×\textbf{b} в паутину \textbf{c}×\textbf{d}.
Лимит времени 2 секунды
Лимит использования памяти 64 MiB
Входные данные #1
5 2 2 3
Выходные данные #1
2

Объяснение: Паук может сделать из 5×2 -> 6×2, с помощью операции 1(k=1). С помощью операции 4(k=3) получить из 6×2 -> 3×2, что то же самое, что 2×3. За одну операцию этого сделать нельзя. Таким образом, необходимо две операции.

Автор Андрей Селиванов
Источник "Пятёрка за неделю" 05 2013-2014. Поиск в ширину