Решение задачи "от X до Y"
Azer SadykhzadehНа своём канале @Sa_Blog я дал своим подписчикам задачу и примерно день на то, чтобы её решить. Т.к. такой формат на своём канале я делаю впервые, задачу я решил подобрать относительно лёгкую.
Условие задачи.
Вам дано два натуральных числа: X и Y. За один шаг вы можете изменить X следующим образом:
— Выбрать любое натуральное нечётное число A и заменить X на (X + A);
— Выбрать любое натуральное чётное число B и заменить X на (X - B).
Вы можете делать неограниченное число шагов или не делать шагов.
Наша цель: за минимальное количество шагов превратить X в Y. Необходимо вывести минимальное количество шагов.
Разбор задачи.
Понятно, что 0(ноль) будет только и только тогда, когда X = Y.
В ином случае будет один из 4-ёх вариантов:
1) X > Y и X - Y = чётное число
2) X > Y и X - Y = нечётное число
3) X < Y и X - Y = чётное число
4) X < Y и X - Y = нечётное число
Если перебирать числа под каждый вариант, то можно заметить, что при 1-ом и 4-ом варианте ответ будет всегда 1, в остальных случаях — ответ 2.
Кто смог решить эту задачу?
В тот день задачу решило 9 человек, пыталось около 30.
Список решивших задачу на 100%:
1) @moniMono - раньше всех на Python

2) @bondarana - решение на С++

3) @NerdOfGalaxy - решение на Python

4) @Gigazelle - решение на Python

5) @John_Lack - решение на Java (неплохо, неплохо ^_^)

6) @dedepere - решение на JavaScript

7) @Fireman_codder - решение на Python

8) @devule (подпишитесь на его канал @pvimg :D ) - решение на С++

9) @Emny04 - решение на С++

Авторское решение.
Предыдущие решение просто шикарны, но по традиции я должен предоставить своё решение данной задачи.


Задача была взята из Codeforces Round #624 (Div. 3) (Задача А.Прибавить нечетное или вычесть четное).
Вдобавок
Подпишитесь на мой блог-канал, чтобы узнавать последние новости о моих ботах и подобного рода мини-конкурсах.
Также Вы можете читать другие мои статьи, связанные с ботами и не только.
Спасибо! <3