Python

Задача помогите плиз

Ilya Gold
Ilya Gold
134
За 2 часа так никто и не ответил? Вот что значит картинка, она действует на нейроботов, как ладан на бесов. Как только надо приложить немного усилий, они тут же сливаются.
 from functools import reduce

def minmaxsumcount(t, n):
mn, mx, s, c = t
return (min(mn, n), max(mx, n), s + n, c + 1)

a, n = map(int, map(input, ('', '')))
ns = filter(a.__ge__, map(int, map(input, ('',) * n)))
mn, mx, s, c = reduce(minmaxsumcount, ns, (next(ns),) * 3 + (1,))
print(f"{mn} {mx}\n{s} {c}")
Даже в один проход удалось уложиться, так что список мы не храним. Элементы обрабатываются по мере поступления.

Пример. На входе:
 33
8
-133
109
14
-287
-130
-558
127
-491
На выходе:
 -558 14
-1585 6

Правда, тут есть слабое место: при вводе списка хранится кортеж из потенциально большого количества ссылок на пустую строку. Его можно устранить использованием repeat:
 from functools import reduce
from itertools import repeat

def minmaxsumcount(t, n):
mn, mx, s, c = t
return (min(mn, n), max(mx, n), s + n, c + 1)

a, n = map(int, map(input, ('', '')))
ns = filter(a.__ge__, map(int, map(input, repeat('', n))))
mn, mx, s, c = reduce(minmaxsumcount, ns, (next(ns),) * 3 + (1,))
print(f"{mn} {mx}\n{s} {c}")
Вячеслав Кривенков
Вячеслав Кривенков
87 571
Лучший ответ