Срочно!!! Даю 100 балов
Задача №111175. Наибольшее произведение двух чисел
Дан список, заполненный произвольными целыми числами по модулю не превосходящими 106
10
6
. Найдите в этом списке два числа, произведение которых максимально. Выведите эти числа в порядке неубывания.
Решение должно иметь сложность ()
O
(
n
)
, где
n
- размер списка.
Система оценки
За тесты с ≤1000
n
≤
1000
можно получить 20 баллов.
За тесты с ≤10000
n
≤
10000
можно получить 20 баллов.
За тесты с ≤10000
a = list(map(int,input().split()))
max1 = -10 ** 99
max2 = -10 ** 99
min1 = 10 ** 99
min2 = 10 ** 99
for i in range(len(a)):
if a[i] > max1:
max2 = max1
max1 = a[i]
else:
if a[i] > max2:
max2 = a[i]
if a[i] < min1:
min2 = min1
min1 = a[i]
else:
if a[i] < min2:
min2 = a[i]
if max1 * max2 > min1 * min2:
print(max1, max2)
else:
print(min1, min2)
ми
Answers & Comments
Ответ python
a = list(map(int,input().split()))
max1 = max(a)
a.pop(a.index(max1))
max2 = max(a)
min1 = min(a)
a.pop(a.index(min1))
min2 = min(a)
if min1*min2 == max1 * max2:
print(max2, max1)
if min1*min2 < max1 * max2:
print(max2, max1)
else:
print(min1, min2)