Лучшая попытка прыгуна

тема: Основы · уровень: средний

Условие

На соревновании по прыжкам у Саши есть несколько попыток. После каждой попытки судья записывает высоту в сантиметрах.

Засчитывают только лучшую попытку — ту, где высота самая большая.

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

Формат ввода

В первой строке дано одно целое число n — количество попыток. Во второй строке дано n целых чисел — высоты попыток в сантиметрах.

Формат вывода

Выведи одно число — максимальную высоту среди всех попыток.

Ограничения

Пример

Ввод:

5
120 135 133 140 128

Вывод:

140

Как решать — идея подхода

Приём: Линейный проход (поиск максимума)

Ключевое наблюдение: в итоговый протокол попадёт только самая большая высота из всех попыток. Значит, не нужно ничего сортировать или хранить «лучшие» несколько — достаточно знать текущий максимум.

Приём: линейный проход с поддержанием максимума. Он работает, потому что максимум можно обновлять «на лету»: увидели новую высоту — сравнили с текущей лучшей и при необходимости заменили.

План решения:

Мини-сниппет обновления:

Сложность: O(n) по времени и O(1) дополнительной памяти (кроме хранения входного списка; можно и без списка, читая по одному числу).

Частая ошибка: начинать best с 0 или очень маленького числа «на глаз». Лучше брать первую попытку, так код корректен при любых допустимых значениях и не зависит от ограничений.

Решить задачу с автопроверкой на Python →

Куда дальше