Разброс роста в классе
Условие
На уроке физкультуры учитель измерил рост нескольких ребят и записал числа в сантиметрах.
Разброс роста — это разница между самым высоким и самым низким ростом.
Помоги быстро понять, насколько ребята разные по росту.
Формат ввода
В первой строке дано целое число n — сколько ребят измерили. Во второй строке дано n целых чисел — их рост (в сантиметрах).
Формат вывода
Выведи одно целое число — разброс роста (максимальный рост минус минимальный).
Ограничения
- 1 ≤ n ≤ 1000
- 0 ≤ рост ≤ 10000
Пример
Ввод:
5
140 152 149 160 145
Вывод:
20
Потому что самый высокий — 160, самый низкий — 140, разница 20.
Как решать — идея подхода
Приём: Однопроходный поиск минимума и максимума
Ключевое наблюдение: чтобы узнать «разброс», не нужно сортировать всех по росту. Достаточно знать только два числа — самый маленький и самый большой рост. Тогда ответ сразу считается как mx - mn.
Почему работает приём «один проход»: каждый новый рост либо улучшает текущий минимум, либо текущий максимум, либо не влияет. Значит, просматривая список один раз, мы точно найдём глобальные min и max.
План решения:
- Считай
nи список изnцелых чисел. - Инициализируй
mnиmxпервым ростом (так не нужно придумывать «очень большое/маленькое» стартовое значение). - Пройди по остальным значениям:
- если
h < mn, обновиmn; - если
h > mx, обновиmx. - Выведи
mx - mn.
Мини-сниппет логики обновления:
mn = min(mn, h)mx = max(mx, h)
Сложность: O(n) по времени, O(1) по памяти (кроме хранения входных данных, если читаешь списком).
Частая ошибка: отсортировать массив (это лишнее) или неправильно инициализировать mn/mx (например, mn = 0 может сломать случай, когда все росты больше 0). Также проверь, что читаешь ровно n чисел.
Решить задачу с автопроверкой на Python →
Куда дальше
- Школьный этап ВсОШ по информатике — как устроен первый этап и план подготовки за четыре недели
- БВИ и льготы при поступлении — какой диплом что даёт и сколько лет он действует
- Перечневые олимпиады по информатике — олимпиады перечня Минобрнауки, их уровни и что нужно к диплому