В городе расположена кольцевая автодорога длиной в
километров с движением в обе стороны. На каждом километре автодороги расположены пункты приема мусора определенной вместимости. В пределах кольцевой дороги около
-ого пункта сборки мусора поставили мусороперерабатывающий завод. Стоимость доставки мусора вычисляется как вместимость пункта сбора, умноженная на расстояние от пункта сбора мусора до мусороперерабатывающего завода. Если мусороперерабатывающий завод находится рядом с пунктом сбора, расстояние считается нулевым. Контейнеры нумеруются с
до
. Требуется найти модуль разницы стоимостей сбора всего мусора при перемещении завода с
-ой позиции контейнера на
(при
,
-ая позиция соответствует
позиции контейнера)
Описание входных данных:
Первое число — количество контейнеров для мусора, второе число
-номер контейнера для мусора, рядом с которым стоит перерабатывающий завод. Последующие
чисел — количество килограмм мусора, которое производится на точке.
Описание выходных данных:
Два числа — модуль разницы стоимостей сбора мусора при перемещении завода с -ой позиции контейнера на
(при
,
-ая позиция соответствует
позиции контейнера) для обоих файлов через пробел.
file = open(’27-1.txt’, ’rt’)
n = int(file.readline())
k = int(file.readline()) - 1
a = [int(file.readline()) for i in range(n)]
s = [sum(a[0:n // 2])]
for i in range(1, n):
s.append(s[i - 1] - a[i - 1] + a[(i - 1 + n // 2) % n])
summa = sum(a)
p = []
for i in range(n):
p.append(summa - s[i])
# ищем стоимость, если завод стоит на
# k-ой позиции
price = 0
for i in range(1, n):
price += min(i, n - i) * a[(i + k) % n]
# найдем k+1 стоимость
new_price = price - s[(k + 1) % n] + p[(k + 1) % n]
print(abs(price - new_price))
- 64317 135
- 135 64317