CSES - List sums

You are given a list of numbers and your task is to compute the sum of every sublist of a given size from left to right.

For example, when the list is [1,2,3,4,5][1,2,3,4,5] and the sublist size is 33, the sublists are [1,2,3][1,2,3], [2,3,4][2,3,4] and [3,4,5][3,4,5]. The sums of the sublists are 66, 99 and 1212.

In a file listsum.py, implement the function find_sum that returns the sublist sums as a list. The function takes a list of numbers and the sublist size as a parameter.

You need to design an efficient algorithm that does not compute each sublist sum separately. A better way is to utilize to the preceding sum when computing the next sum.

The last test case of the following code template has 10510^5 numbers and the sublist size is 10410^4. Your function should work quickly in this test case too.

def find_sums(numbers, size):
    # TODO

if __name__ == "__main__":
    print(find_sums([1], 1)) # [1]
    print(find_sums([1, 8, 2, 7, 3, 6, 4, 5], 6)) # [27, 30, 27]

    print(find_sums([1, 2, 3, 4, 5], 1)) # [1, 2, 3, 4, 5]
    print(find_sums([1, 2, 3, 4, 5], 2)) # [3, 5, 7, 9]
    print(find_sums([1, 2, 3, 4, 5], 3)) # [6, 9, 12]
    print(find_sums([1, 2, 3, 4, 5], 4)) # [10, 14]
    print(find_sums([1, 2, 3, 4, 5], 5)) # [15]

    numbers = list(range(10**5))
    sums = find_sums(numbers, 10**4)
    print(sums[5]) # 50045000
    print(sums[42]) # 50415000
    print(sums[1337]) # 63365000