На каждом километре кольцевой автомагистрали расположены многоэтажные жилые дома. Длина кольцевой автодороги равна N км. Нулевой километр и N-й километр находятся в одной точке. Жители домов ежедневно получают газеты. Известен объем заказываемых газет для каждого жилого дома. Доставлять газеты можно лишь на расстояние, не превышающее K километров. Муниципалитет хочет определить суммарный объем газет, пункт доставки которых будет размещен в одном из домов так, чтобы из него ежедневно доставлялось максимальное количество газет.
Входные данные.
Дано два входных файла (файл А и файл В), каждый из которых в первой строке содержит два числа N и K – длина дороги и максимальное расстояние, на которое разрешается доставлять газеты. В каждой из следующих N строк находится одно число: объем газет для жилого дома (все числа натуральные, не превышают 1000). Числа указаны в порядке расположения пунктов на автодороге.
В ответе укажите два числа: сначала значение искомой величины для файла А, затем – для файла В.
Типовой пример организации данных во входном файле
8 3
2
5
4
1
7
3
2
6
При таких исходных данных объем газет из оптимального расположения пункта доставки составит: 29.
f = open(’27B.txt’)
n, m = map(int, f.readline().split())
a = [int(i) for i in f]
#дублирование списка a, чтобы учесть возможность "зацикливания" кольцевой автомагистрали
a *= 2
#инициализация переменных для хранения максимальной суммы и текущей суммы
maxi = maxs = sum(a[:2*m+1])
#перебор всех возможных интервалов доставки газет
for i in range(m+1,2*n-m):
#пересчет текущей суммы с учетом "сдвига" окна на новый интервал
maxs += a[i+m] - a[i-m-1]
if maxs > maxi: #поиск максимальной суммы
maxi = maxs
print(maxi)