В
Все
Б
Биология
Б
Беларуская мова
У
Українська мова
А
Алгебра
Р
Русский язык
О
ОБЖ
И
История
Ф
Физика
Қ
Қазақ тiлi
О
Окружающий мир
Э
Экономика
Н
Немецкий язык
Х
Химия
П
Право
П
Психология
Д
Другие предметы
Л
Литература
Г
География
Ф
Французский язык
М
Математика
М
Музыка
А
Английский язык
М
МХК
У
Українська література
И
Информатика
О
Обществознание
Г
Геометрия

В свободное от учебы время Даша очень любит смотреть мультсериалы, снятые по комиксам. Она уже выбрала мультсериал для просмотра, но есть одна проблема. Достаточно часто в экранизациях комиксов серии снимают не последовательно по хронологии событий, а в каком-то странном порядке. Чтобы избавить себя от путаницы, Даша решила, что выберет и посмотрит ровно три серии, причем так, чтобы номера этих серий шли в возрастающем порядке и годы, в которые происходят события в сериях, тоже шли в возрастающем порядке. Для каждой серии известно, в каком году происходят события этой серии Даше найти три подходящие серии для просмотра.

Показать ответ
Ответ:
Ученая13
Ученая13
20.12.2021 06:00

import bisect

n = int(input())

a = [int(input()) for i in range(n)]

INF = 10 ** 9

dp = [0] + [INF] * n

prev = [0] * (n + 1)

for elem in a:

   i = bisect.bisect_left(dp, elem)

   if dp[i] > elem:

       dp[i] = elem

       prev[i] = dp[i - 1]

if dp[3] == INF:

   print(0)

else:

   k = n - 1

   while a[k] != dp[3]:

       k -= 1

   j = k - 1

   while a[j] != prev[3]:

       j -= 1

   i = j - 1

   while a[i] >= a[j]:

       i -= 1

   print(i + 1, j + 1, k + 1)

Объяснение:

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота