В заданной последовательности неотрицательных чисел найти максимальную сумму двух её элементов. Python
n = int(input())
max1 = max2 = summa = 0
for i in range(n):
x = int(input())
if x > max1 and x != max2:
max1 = x
if x > max2 and x != max1:
max2 = x
if max1+max2 > summa:
summa = max1+max2
print(summa)
В чем ошибка?
Ответы (2 шт):
Автор решения: Zhihar
→ Ссылка
if x > max2 and x != max1:
max2 = x
вы считаете, что в последовательности 3 3 2 два максимальных числа не могут быть одинаковыми?
if x > max1:
max1, max2 = x, max1
elif x > max2:
max2 = x
вот так надо - если x больше максимального числа, то максимальное число никуда не девается, оно присваивается второму максимальному числу (меньшему из двух максимальных)
Автор решения: Danis
→ Ссылка
max1, max2 = 0, 0
for _ in range(int(input())):
n = int(input())
if n > max2:
max2, max1 = sorted((max1, n))
print(max1 + max2)
без if
max1, max2 = 0, 0
for _ in range(int(input())):
n = int(input())
_, max1, max2= sorted((max1, max2, n))
print(max1 + max2)