-
Notifications
You must be signed in to change notification settings - Fork 1
/
h2_g.py
52 lines (41 loc) · 1.18 KB
/
h2_g.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
"""
Наибольшее произведение двух чисел
Дан список, заполненный произвольными целыми числами.
Найдите в этом списке два числа, произведение которых максимально.
Выведите эти числа в порядке неубывания.
Список содержит не менее двух элементов.
Числа подобраны так, что ответ однозначен.
Решение должно иметь сложность O(n), где n - размер списка
"""
def sol(a):
if a[0] > a[1]:
mx1 = a[0]
mx2 = a[1]
else:
mx1 = a[1]
mx2 = a[0]
mn1, mn2 = mx2, mx1
n = len(a)
for i in range(2, n):
if a[i] > mx1:
mx2 = mx1
mx1 = a[i]
elif a[i] > mx2:
mx2 = a[i]
if a[i] < mn1:
mn2 = mn1
mn1 = a[i]
elif a[i] < mn2:
mn2 = a[i]
p1 = mx1 * mx2
p2 = mn1 * mn2
if p1 > p2:
print(mx2, mx1)
else:
print(mn1, mn2)
a = list(map(int, input().split()))
sol(a)
"""
найти 2 максимума и 2 минимума
сравнить произведение максимумов и минимумов
"""