Решение задачи "от X до Y"

Решение задачи "от 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

Решение @moniMono на Python

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

Решение @bondarana на С++

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

Решение @NerdOfGalaxy на Python

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

Решение @Gigazelle на Python

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

Решение @John_Lack на Java

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

Решение @dedepere на JavaScript

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

Решение @Fireman_codder на Python

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

Решение @devule на С++

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

Решение @Emny04 на С++

Авторское решение.

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

Авторское решение на Python
Авторское решение на C++

Задача была взята из Codeforces Round #624 (Div. 3) (Задача А.Прибавить нечетное или вычесть четное).

Вдобавок

Подпишитесь на мой блог-канал, чтобы узнавать последние новости о моих ботах и подобного рода мини-конкурсах.

Также Вы можете читать другие мои статьи, связанные с ботами и не только.

Спасибо! <3

Report Page