Найти в Дзене

Задача 263. Метро

Интересная задача на порисовать и посчитать. Давайте читать условие:

Условие задачи с сайта acmp.ru
Условие задачи с сайта acmp.ru

Если бы Витя жил на прямой ветке метро, то решение задачи свелось бы к вычитанию меньшего номера станции из большего (и ещё вычесть 1, так как нужны только промежуточные станции).

Но Витя живёт на кольцевой ветке, поэтому у него есть два способа доехать до дома. На рисунках зелёным отмечены станции, которые надо проехать, чтобы попасть из a в b:

Два варианта проезда по кольцевой ветке
Два варианта проезда по кольцевой ветке

В данном случае лучше выбрать путь с левого рисунка. Но есть на правой дуге увеличить число вершин (или уменьшить на левой), тогда путь с правого рисунка станет быстрее. Попробуем это реализовать.

Считаем входные данные и приведём к числовым типам:

Ввод входных данных
Ввод входных данных

Для упрощения дальнейших вычислений поменяем a и b местами так, чтобы a была меньше (это возможно сделать так как для количества станций не имеет значения из дома мы едем или домой):

Обмен местами, если a меньше b
Обмен местами, если a меньше b

И теперь в качестве ответа надо выбрать один из путей. Первый вариант ничем не отличается от случая, когда Витя жил бы на прямой (b - a - 1). А второй случай, наоборот, это все станции, кроме тех, которые посещаются в первом варианте (и ещё станции a и b). То есть n - (b - a - 1) - 2, раскрыв скобки получаем:

Вывод ответа
Вывод ответа

Очень часто задачи проще решить, если немного порисовать. Пользуйтесь этим инструментом.

Предыдущий выпуск: Задача 6. Шахматы

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