напишите программу, которая в последовательности целых чисел определяет сумму двух наибольших и сумму двух наименьших

max1 = 30001
max2 = 30001
min1 = -30001
min2 = -30001
for a in range 1 to 5:
    for i in input().split():
    s = int(i)
    if a == 0:
        min1 =0
        min2 = 0
        max1 = 0
        max2 = 0
 while a 1 != 0:
        if a  == 0:
            break
        if a >= max1:
            max2 = max1
            max1 = a
        elif a >= max2:
            max2 = a
        if a 1 <= min1 and a != 0:
            min2 = min1
            min1 = a
        elif a <= min2:
            min2 = a
        a = input().split()
        if a == 0:
            break
    b = max1 + max2
    c = min1 + min2
print(b, c)  

Ответы (2 шт):

Автор решения: Zhihar

отсортировать список и всех делов

data = sorted(arr)
value1 = data[0] + data[1]
value2 = data[-1] + data[-2]

или так:

data = sorted(arr)
value1 = sum(data[:2])
value2 = sum(data[-2:])
→ Ссылка
Автор решения: Arty

В целом ваш алгоритм имеет правильный замысел и направление, я эту идею воплотил в моей работающей версии алгоритма. Представляю два алгоритма, первый ищет напрямую минимумы и максимумы, как ваш алгоритм, второй использует функцию сортировки.

Попробовать онлайн!

import sys
a = list(map(int, sys.stdin.read().strip().split()))
min1, min2, max1, max2 = [None] * 4
for n in a:
    if min1 is None or n < min1:
        min1, min2 = n, min1
    elif min2 is None or n < min2:
        min2 = n
    if max1 is None or n > max1:
        max1, max2 = n, max1
    elif max2 is None or n > max2:
        max2 = n
print(max1 + max2, min1 + min2)

Вход:

864 394 776 911 430 41 265 988 523 497 414 940 802 849 310 991 488 366 597 913 929 223 516 142 288 143 773 97 633 818 256 931 545 722 829 616 923 150 317 101 747 75 920 870 700 338 483 573 103 362

Выход:

1979 116

Второй алгоритм, использующий сортировку:

Попробовать онлайн!

import sys
a = list(map(int, sys.stdin.read().strip().split()))
a.sort()
min1, min2 = a[:2]
max2, max1 = a[-2:]
print(max1 + max2, min1 + min2)

Вход:

864 394 776 911 430 41 265 988 523 497 414 940 802 849 310 991 488 366 597 913 929 223 516 142 288 143 773 97 633 818 256 931 545 722 829 616 923 150 317 101 747 75 920 870 700 338 483 573 103 362

Выход:

1979 116

Входные числа были сгенерированы таким кодом:

Попробовать онлайн!

import random
random.seed(0)
for i in range(50):
    print(random.randrange(1000), end = ' ')
→ Ссылка