Велопрогулка

Наибольший спуск

Описание задачи

Дана трасса с точками высот (дистанция, высота). Выбрать старт и финиш так, чтобы:

  1. Высота старта ≥ Высота финиша.
  2. Максимизировать разницу высот (спуск).
  3. При одинаковом спуске — максимизировать длину маршрута.

Пример

Track
0: 210
5: 300
14: 320
20: 270
Analysis
320 -> 270 (descent 50, len 6)
300 -> 270 (descent 30, len 15)
Max descent is 50.

Алгоритм (O(N))

Можно использовать подход, похожий на поиск пары с максимальной разностью (как покупка/продажа акций), но здесь нужно учитывать и длину.

← Парковка I К списку →