Задача 4: Американские горки
Аттракцион «Американские горки» представляет собой рельсовый трек, размещённый на опорах. Известна высота каждой опоры. Для рекламы аттракциона необходимо выделить один из его фрагментов (несколько подряд идущих опор с рельсовым треком) световой подсветкой. При этом необходимо выделить такой фрагмент трека, на котором была бы «горка» то есть на выделенном участке трека была бы точка, которая находилась бы строго выше начала и строго выше конца выделенного фрагмента трека.
Владелец аттракциона для экономии хочет найти подходящий участок минимальной длины, удовлетворяющий условию наличию «горки» на этом участке.
Входные данные
Первая строка входных данных содержит число N – количество опор аттракциона. Следующие N строк содержат информацию о высотах опор при движении от начала к концу аттракциона. Все числа натуральные, не превосходящие 105.
Выходные данные
Программа должна вывести два числа – номер первой и последней подходящей опоры. Опоры нумеруются числами от 1 до N. Если фрагмента, удовлетворяющего условиям, не существует, программа должна вывести одно число 0. Если подходящих ответов несколько, нужно вывести любой из них.
Система оценивания
Решение, правильно работающее только для случаев, когда все входные числа не превосходят 100, будет оцениваться в 40 баллов.
В 100 баллов будет оцениваться решение, правильно работающее, когда все числа не превосходят 105.
Примеры
Ввод
7
18
10
15
20
20
10
3
Вывод
3 6
Пояснение
Дано 7 опор с высотами 18, 10, 15, 20, 20, 10, 3. Самый короткий участок, содержащий «горку» – это 15, 20, 20, 10. Он начинается опорой номер 3 и заканчивается опорой номер 6.
Ввод
3
9
8
5
Вывод
0
Пояснение
Высоты опор убывают, поэтому участка с «горкой» нет.
136
482
Ответы на вопрос:
N = int(input())
X = [''] * N
for a in range(N):
X[a] = int(input())
a = 0
c, b, e, f = 0, 0, 0, N + 1
g, h = 0, 0
while a < N - 2:
a += 1
e += 1
b, c = X[a], b
if c < b:
while a < N - 1:
a += 1
e += 1
d = X[a]
if d < b:
if e < f:
g, h = a - e + 1, a + 1
f = e
break
elif d == b:
continue
else:
break
e = 0
if g == 0 and h == 0:
print(0)
else: print(g, h)
Объяснение:
55 балов
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
ЛилияЕршова18.04.2023 17:01
-
Маргольц17.02.2021 13:54
-
Тупойшкольник007.11.2021 09:17
-
hakobov201714.12.2022 11:47
-
0372116.08.2020 09:30
-
ussr201714.04.2020 07:34
-
fsjxjnlsjaCn18.07.2021 07:40
-
Виталина541318.07.2020 07:04
-
HELPLIZA118.05.2022 11:57
-
Лиза421708.06.2021 17:36
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.