Районная олимпиада 2019-2020 информатика
Задача E. Екінші максимум
Ограничение по времени:
1 second
Ограничение по памяти:
256 megabytes
Сізге $a_1$, $a_2$,..., $a_n$ $n$ саны беріледі. $2$-ден $n$-ге дейін әрбір $k$ үшін $a$ массивінің алғашқы $k$ санының ішіндегі екінші максимумды табыңыз.
Формат входного файла
Бірінші жолда $n$ $(1 <= n <= 10^5)$ саны берілген.
Екінші жолда $a_1$, $a_2$,..., $a_n$ $n$ бүтін саны берілген $(1 <= a_i <= 10^9)$.
Формат выходного файла
$2$-ден $n$-ге дейін әрбір $k$ үшін есептің жауабын шығарыңыз.
Система оценки
Бұл есеп $10$ тесттан тұрады. Әр тест $10$ баллға бағаланады:
- $1 <= n <= 100$. 1-3 нөмердегі тесттер.
- $1 <= n <= 5000$. 4-6 нөмердегі тесттер.
- $1 <= n <= 10^5$. 7-10 нөмердегі тесттер
Пример:
Вход 7 1 2 3 3 7 5 6Ответ
1 2 3 3 5 6
Замечание
Мысалда:
- $k=2$. Алғашқы $k$ сан $\underline{1}, 2$. Жауабы - $1$
- $k=3$. Алғашқы $k$ сан $1, \underline{2}, 3$. Жауабы - $2$
- $k=4$. Алғашқы $k$ сан $1, 2, \underline{3}, 3$. Жауабы - $3$
- $k=5$. Алғашқы $k$ сан $1, 2, \underline{3}, 3, 7$. Жауабы - $3$
- $k=6$. Алғашқы $k$ сан $1, 2, 3, 3, 7, \underline{5}$. Жауабы - $5$
- $k=7$. Алғашқы $k$ сан $1, 2, 3, 3, 7, 5, \underline{6}$. Жауабы - $6$
Комментарий/решение:
n = int(input()) # Ввод числа n
array = list(map(int, input().split())) # Ввод списка через запятую
for k in range(2, n+1): # проход по всем отрезкам от 1 до n
temporary = array[:k]# временный список равен срезу последних k эл-ов
temporary.remove(max(temporary)) # Убираем максимальный эл-нт из списка
print(max(temporary), end=" ") # Вывод второго максимального эл-а, в строку через пробел
Возможно, что при неправильном наборе формул, они будут
доредактированы модератором. При этом содержание не будет меняться.