Задача к ЕГЭ по информатике на тему «Мусорки, кольцевая дорога» №4

В городе M  расположена кольцевая автодорога длиной в N  километров с движением в обе стороны. На каждом километре автодороги расположены пункты приема мусора определенной вместимости. В пределах кольцевой дороги около k  -ого пункта сборки мусора поставили мусороперерабатывающий завод. Стоимость доставки мусора вычисляется, как вместимость пункта сбора умноженная на расстояние от пункта сбора мусора до мусороперерабатывающего завода. Если мусороперерабатывающий завод находится рядом с пунктом сбора расстояние считается нулевым. Контейнеры нумеруются с 1  до N  . Требуется найти модуль разницы стоимостей сбора всего мусора при перемещении завода с k  -ой позиции контейнера на k+ 1  (при k = N  , (k + 1)  -ая позиция соответствует 1 позиции контейнера).

Описание входных данных:

Первое число N  — количество контейнеров для мусора, второе число k  — номер контейнера для мусора рядом с которым стоит перерабатывающий завод. Последующие N  чисел — количество килограмм мусора, которое производится на точке.

Описание выходных данных:

Одно число — модуль разницы стоимостей сбора мусора при перемещении завода с k  -ой позиции контейнера на    k + 1  (при k = N  , (k + 1)  -ая позиция соответствует 1  позиции контейнера).

В ответе укажите два числа: сначала значение искомой величины для файла A  , затем — для файла B  .

f = open("5A.txt")
n = int(f.readline())
k = int(f.readline()) - 1
a = [int(f.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] + p[k + 1]
print(abs(price - new_price))

Ответ: 300 64769
Оцените статью
Я решу все!