Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

ПОМОГИТЕ С ЗАДАЧЕЙ

ef effe Ученик (88), открыт 1 неделю назад
Поликарп выбирает три задачи, чтобы составить тест по программированию. Всего у него в списке n
задач, сложность i
-й задачи равна ri
. Задачи пронумерованы от 1
до n
.

Помогите Поликарпу выбрать любые такие три задачи a
, b
и c
, что сложность первой из них строго меньше сложности второй, а сложность второй строго меньше сложности третьей. Иными словами, для выбранных задач a
, b
и c
должно выполняться, что ra<rb<rc
.

Если Поликарп может выбрать три задачи требуемым образом неоднозначно, то выведите любой из способов.

Входные данные
В первой строке записано целое число n
(3≤n≤3000
) — количество задач в списке Поликарпа.

Далее во второй строке записаны n
целых чисел r1,r2,…,rn
(1≤ri≤109
), где ri
— сложность i
-й задачи.

Выходные данные
Если выбрать три задачи требуемым образом невозможно, то выведите три числа -1. В противном случае выведите любой из способов выбрать три задачи в виде трёх различных целых чисел a,b,c
(1≤a,b,c≤n
), где a
— номер первой выбранной задачи, b
— номер второй выбранной задачи, c
— номер третьей выбранной задачи.

Примеры
Входные данныеСкопировать
6
3 1 4 1 5 9
Выходные данныеСкопировать
4 1 3
Входные данныеСкопировать
5
1 1000000000 1 1000000000 1
Выходные данныеСкопировать
-1 -1 -1
Входные данныеСкопировать
9
10 10 11 10 10 10 10 10 1
Выходные данныеСкопировать
9 8 3
3 ответа
S.H.I. Оракул (71322) 1 неделю назад
 def main(): 
import sys

data = sys.stdin.read().strip().split()
if not data:
return

n = int(data[0])
r = list(map(int, data[1:]))

# Словарь, в котором для каждой сложности храним первый встреченный индекс
first_occurrence = {}
for i, diff in enumerate(r, start=1):
if diff not in first_occurrence:
first_occurrence[diff] = i

# Если уникальных значений меньше 3, решения не существует.
if len(first_occurrence) < 3:
print("-1 -1 -1")
return

# Сортируем уникальные сложности
sorted_diffs = sorted(first_occurrence.keys())

# Выбираем первые три сложности
a = first_occurrence[sorted_diffs[0]]
b = first_occurrence[sorted_diffs[1]]
c = first_occurrence[sorted_diffs[2]]

print(a, b, c)

if __name__ == '__main__':
main()
ef effeУченик (88) 1 неделю назад
без сус
S.H.I. Оракул (71322) ef effe, OK
больше не чат гпт ???? Мыслитель (9093) 1 неделю назад
 n = int(input()) 
r = list(map(int, input().split()))

for i in range(n):
for j in range(n):
if r[i] < r[j] and i != j:
for k in range(n):
if r[j] < r[k] and j != k and i != k:
print(i + 1, j + 1, k + 1)
exit()

print("-1 -1 -1")
Похожие вопросы