В городе M расположена кольцевая автодорога длиной N километров с движением в обе стороны. На каждом километре автодороги расположены пункты приема мусора определенной вместимости. В пределах кольцевой дороги в одном из пунктов сборки мусора собираются поставить мусороперерабатывающий завод.
Мусор до завода доставляет автомобиль, но в него вмещается не более K килограмм мусора за раз.
Стоимость доставки мусора вычисляется как произведение количества необходимых заездов автомобиля до точки и расстояния от пункта сбора мусора до мусороперерабатывающего завода. Если мусороперерабатывающий завод находится рядом с пунктом сбора, расстояние считается нулевым.
Требуется определить общую сумму цифр всех возможных общих стоимостей доставок мусора со всех точек.
Входные данные:
Первое число N — количество контейнеров для мусора. Второе число K — вместимость автомобиля. Последующие N чисел — количество килограмм мусора, которое производится на точке.
В ответе укажите два числа через пробел: сначала искомое значение для файла А, затем для файла B.
# Файлик А
from math import ceil
f = open(’27A_07_5.txt’)
N = int(f.readline())
K = int(f.readline())
a = [ceil(int(i) / K) for i in f] * 2
summa = 0
for i in range(0, N):
sm = 0
for j in range(1 + i, N + i):
d = abs(j - i)
sm += a[j] * min(d, N - d)
summa += sum(map(int, str(sm)))
print(summa)
# Файлик B
from math import ceil
f = open(’27B_07_5.txt’)
N = int(f.readline())
K = int(f.readline())
a = [ceil(int(i) / K) for i in f] * 2
sm = 0
for i in range(1, N):
sm += a[i] * min(i, N - i)
l = sum(a[-(N // 2):])
r = sum(a[:N // 2])
sums = [sm]
for i in range(1, N):
l += a[i - 1] - a[-(N // 2) + i - 1]
r += a[(N // 2) + i - 1] - a[i - 1]
sm += l - r
sums.append(sm)
print(sum([sum(map(int, str(i))) for i in sums]))