Самое слабое звено

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

Условие

Тренер собрал команду на соревнование. У каждого спортсмена есть результат в очках (может быть и отрицательным — за штрафы).

Тренер говорит: «Самое слабое звено — это тот, у кого результат самый маленький». Помоги тренеру понять, какой результат в команде самый маленький.

Важно: самый маленький может встретиться у нескольких спортсменов — всё равно нужен именно самый маленький результат.

Формат ввода

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

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

Выведите одно целое число — самый маленький результат.

Ограничения

Пример

Ввод:

5
12 7 -3 7 10

Вывод:

-3

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

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

Ключевое наблюдение: нам не нужно ничего сортировать и не важно, сколько раз встречается минимальное значение — достаточно узнать само наименьшее число среди всех результатов.

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

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

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

Сложность: O(n) по времени и O(1) по памяти (кроме хранения входных данных, если ты их сохраняешь).

Частая ошибка: начинать mn с 0 или с «очень большого числа» наугад. Если все результаты положительные/отрицательные, можно случайно получить неверный ответ. Надёжнее всего брать минимум, начиная с первого элемента.

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

Куда дальше