Даны значения температуры в каждый из n дней. Требуется найти такие семь подряд идущих дней, чтобы среднее арифметическое значений их температур было максимальным. Ответ должен содержать номер первого из этих дней — Python(Питон)

Формат входных данных

На первой строке входного файла записано натуральное число n (7≤n≤100) — число дней.
На следующей строке через пробел записаны значения температуры — целые числа, не превышающие 250 по абсолютной величине.
Формат выходных данных

Требуется вывести номер первого из искомых дней. В случае, если ответов несколько — наименьший номер из найденных.
Примеры

входные данные \\\ выходные данные
9 \\\ 2
-1 4 6 -3 5 2 9 20 -4

def main():
    n = int(input())
    assert n <= 100, "n should be <= 100"
 
    lst = [int(x) for x in list(input().split())]
    assert len(lst) == n, "length of the list should be %d" % n
    assert all(abs(x) <= 250 for x in lst), "all numbers should be in range -250...250"
 
    print(max((v, i) for i, v in enumerate([sum(lst[x:x+7])/7.0 for x in range(len(lst)-7)]))[1])
 
    # или
    #avg_lst = [sum(lst[x:x+7])/7.0 for x in range(len(lst)-7)]
    #print(avg_lst.index(max(avg_lst))+1)
 
main()

Leave a Comment