Прогулянка

Достатньо розглянути усі $$$3!=6$$$ способів обрати шлях між магазинами. Отже, відповідь буде дорівнювати $$$$$$min(|a|+|a-b|+|b-c|, |a|+|a-c|+|c-b|, |b|+|b-a|+|a-c|, |b|+|b-c|+|a-c|, |c| + |a-c| + |b-a|, |c|+|c-b|+|b-a|)$$$$$$ Але є інший, красивіший розв'язок.

Нехай $$$a \le b \le c$$$, тоді є наступні випадки:

  1. $$$c \le 0$$$ або $$$a \ge 0$$$ — відповідь буде дорівнювати $$$|a|$$$ або $$$|c|$$$ відповідно.
  2. Інакше, одна точка лежить між двома іншими, і на шляху до іншої точки ми її відвідаємо. Тобто, відповідь — $$$\min(2 \cdot |c|+|a|,2 \cdot |a|+|c|) = |a|+|c|+\min(|c|,|a|)$$$.