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

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

Рядом с каким пунктом сбора мусора нужно поставить мусороперерабатывающий завод?

Входные данные:

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

Выходные данные:

Одно число — номер контейнер для мусора рядом с которым стоит расположить перерабатывающий завод.

Пример входных данных:

6

8

20

5

13

7

19

Для данного примера ответ — 6 (7⋅1 + 13⋅2+ 5 ⋅3 + 20⋅2+ 8 ⋅1+ 19⋅0).

f = open(’27B.txt’)
n = int(f.readline())
a = [int(f.readline()) for i in range(n)]

summa = sum(a)
s = [0]*n
s[0] = sum(a[0:n//2])
for i in range(1,n):
    s[i] = s[i-1]-a[i-1]+a[((i-1)+n//2)%n]

p = [0]*n
for i in range(n):
    p[i] = summa-s[i]

price = [0]*n
for i in range(n//2):
    price[0]+=a[i]*i
for i in range(n//2,n):
    price[0]+=a[i]*(n-i)

mi = 10**20
number = -1
for i in range(1,n):
    price[i] = price[i-1] - s[i] + p[i]
    if price[i]<mi:
        mi = price[i]
        number = i+1
print(number)

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