Серебряный приз: второй по величине разный счёт
Условие
На турнире по игре «Космо-раннер» у каждого участника есть свой счёт.
Золотой приз получает участник с самым большим счётом. А серебряный приз — тот, чей счёт второй по величине среди РАЗЛИЧНЫХ счётов.
Например, если счёты такие: 10, 10, 8, 7, то самый большой счёт — 10, а второй по величине разный — 8.
Твоя задача — помочь судье и вывести значение серебряного счёта.
Гарантируется, что различных счётов хотя бы два.
Формат ввода
Первая строка: целое число n — количество участников. Вторая строка: n целых чисел — счёты участников.
Формат вывода
Выведите одно число — второй по величине различный счёт.
Ограничения
2 ≤ n ≤ 501 ≤ score[i] ≤ 1000- различных счётов хотя бы два
Пример
Ввод:
5
10 7 10 8 8
Вывод:
8Как решать — идея подхода
Приём: Два максимума за один проход
Ключевое наблюдение: «серебряный» счёт — это не второй элемент в отсортированном списке, а второе по величине значение среди разных. Значит, одинаковые максимумы (например, 10 и 10) не должны «съедать» серебро.
Подход: пройти по массиву один раз и поддерживать два значения:
max1— самый большой счёт,max2— второй по величине, но строго меньшеmax1.
Почему работает: в любой момент времени max1 и max2 хранят два лучших различных значения из уже просмотренных элементов. При встрече нового числа мы либо обновляем лидера, либо улучшаем второе место.
План:
- Инициализируй
max1иmax2очень маленькими (например, -1). - Для каждого
x: - если
x > max1, то сдвинь лидера:max2 = max1,max1 = x; - иначе если
max2 < x < max1, то обновиmax2 = x. - Выведи
max2(гарантировано, что он будет найден).
Мини-сниппет условия для второго места: if x != max1 and x > max2: max2 = x (но не забудь, что обновление max1 отдельным случаем).
Сложность: O(n) по времени, O(1) по памяти.
Частая ошибка: считать «вторым» просто второй элемент после сортировки или обновлять max2, когда x == max1 (это ломает случай с несколькими максимальными значениями).
Решить задачу с автопроверкой на Python →
Куда дальше
- Python на олимпиадах — где языка хватает с запасом, а где начинают значить лимиты — с замерами
- Олимпиада по информатике: с чего начать — два мира олимпиад — ВсОШ и перечневые: этапы, задания и на каком языке писать
- На программиста по олимпиаде: путь по классам — что даёт диплом, куда с ним берут на ИТ-направления и почему решает 9 класс