Олимпиадный тренинг

Задача . Задача о Кузнечике. Расширенный алгоритм Евклида


Задача

Темы:
Кузнечик живет на числовой оси и умеет выполнять две команды ВПЕРЕД и НАЗАД.
Команда ВПЕРЕД перемещает Кузнечика на B позиций в положительном направлении,
а команда НАЗАД перемещает Кузнечика на Н позиций в отрицательном направлении.
В начальный момент времени Кузнечик находится в позиции O.
Помогите переместить Кузнечика в позицию Е.  Если это сделать невозможно,
то передвиньте Кузнечика в наиболее близкую позицию к точке E.
Если таких позиций несколько, то выберите ту, которая ближе к началу координат
(имеет минимальное абсолютное значение).
Найдете оптимальное решение задачи. Решение считается оптимальным,
если общее количество команд (ВПЕРЕД, НАЗАД) минимально.
Входные данные
Натуральные числа В,Н и целые числа О, Е. Все числа по модулю не превосходят 109  
Выходные данные
Три числа X (общее количество выполнения команды ВПЕРЕД) ,Y (общее количество выполнения команды НАЗАД), Z (финальная позиция Кузнечика
входные данные выходные данные пояснения
2 1 1 4 2 1 4 Кузненчик может перемещаться ВПЕРЕД на 2 позиции и НАЗАД на 1 позицию. Выполнив 2 раза команду ВПЕРЕД и 1 раз команду НАЗАД Кузнечик переместиться на три позиции (2*2-1*1=3) с позиции 1 попадет в позицию 4
8 6 -1 -16 2 5 -15 Итоговое перемещение Кузнечика может быть только кратно 2.  Позиции, в которые сможет попасть Кузненчик имеют выражаются формулой -1+2k. Наиболее близкими к позиции -16 будут -17  и -15. По требованиям задачи выбираем -15. Для перемещения в позицию -15 нужно переместить Кузнечика на -14. Это можно сделать разными способами. Например, выполнив 5 раз команду ВПЕРЕД и 9 раз команду НАЗАД (8*5-6*9=-14) , но это не будет оптимальным решением
 

time 500 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
Комментарий учителя