• Предмет: Информатика
  • Автор: katyavladova16012019
  • Вопрос задан 7 лет назад

Срочно!!! Даю 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)

ми



Приложения:

Ответы

Ответ дал: badnsnus
1

Ответ 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)

Вас заинтересует