Как изменить код, чтобы он прошел тест на время?

Код не проходит по времени в тестирующей системе. Сам код(необходимо найти скользящее взвешенное среднее):

import numpy as np

with open("input.txt", 'r') as fin:
    n, m = map(int, fin.readline().split()) # 1 < n < 10e5, 2 < m < 16
    w = list(map(int, fin.readline().split())) # m values
    y = np.array(list(map(float, fin.readline().split()))) # n values

s = sum(w)
if n < m:
    ans = y
else:
    ans = [sum(y[i: i+m] * w) / s for i in range(n-m+1)]

with open("output.txt", 'w') as fout:
    print(*ans, file=fout)

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

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

Вы выполняете чтение файла 3 раза, это крайне медленная операция. Лучше считать один раз, сохранить в переменную и использовать ее.

А ещё у вас две строки после with идентичны

→ Ссылка