Решите срочно даю 100 балов
Задача №111176. Наибольшее произведение трех чисел
В данном списке из ≤105
n
≤
10
5
целых чисел найдите три числа,произведение которых максимально.
Решение должно иметь сложность ()
O
(
n
)
, где
n
- размер списка.
Выведите три искомых числа в любом порядке.
Примеры
входные данные
3 5 1 7 9 0 9 -3 10
выходные данные
10 9 9
входные данные
-5 -30000 -12
выходные данные
-5 -12 -30000
Answers & Comments
Ответ: вроде все работает
a = list(map(int, input().split()))
maxs = []
mins = []
for i in range(3):
if len(a) == 0:
break
maxs.append(max(a))
a.pop(a.index(maxs[-1]))
for i in range(3):
if len(a) == 0:
break
mins.append(min(a))
a.pop(a.index(mins[-1]))
if len(mins) < 2:
print(maxs[0], maxs[1], maxs[2])
else:
if abs(mins[0] + mins[1]) > maxs[1] + maxs[2]:
print(mins[0], mins[1], maxs[0])
else:
print(maxs[0], maxs[1], maxs[2])