Решение задачи Наибольшее произведение трех чисел с Яндекс Контест

Без пояснения   Просмотров: 3541


В данном списке из n ≤ 105 целых чисел найдите три числа,произведение которых максимально.

Решение должно иметь сложность O(n), где n - размер списка.

Выведите три искомых числа в любом порядке.

Код

a = map(int, input().split())
a = list(a)
a = sorted(a)
s = max(a[0] * a[1] * a[2], a[len(a) - 1] * a[len(a) - 2] * a[len(a) - 3])
s = max(s, a[len(a) - 1] * a[0] * a[1])
if s == a[0] * a[1] * a[2]:
    print(a[0], a[1], a[2])
elif s == a[len(a) - 1] * a[len(a) - 2] * a[len(a) - 3]:
    print(a[len(a) - 1], a[len(a) - 2], a[len(a) - 3])
else:
    print(a[len(a) - 1], a[0], a[1])

         

Администратор Photo Автор: Администратор



Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться



Заявка на расчет