Тема 27. Программирование – оптимизация по времени и по памяти

27.02 Мусорки, кольцевая дорога

Вспоминай формулы по каждой теме
Решай новые задачи каждый день
Вдумчиво разбирай решения
ШКОЛКОВО.
Готовиться с нами - ЛЕГКО!
Подтемы раздела программирование – оптимизация по времени и по памяти
Решаем задачу:

Ошибка.
Попробуйте повторить позже

Задача 1#40155

Стоимость доставки фантиков равно произведению количества фантиков на квадрат расстояния от сборщика до мусорки.

Дано число n  — количество мусорок, расположенных по кругу, затем n  чисел — количество фантиков в каждой мусорке. Требуется найти все убывающие взвешенные суммы для всех начальных позиций пункта сбора. Убывающей взвешенной суммой является сумма членов, имеющих вид a[i]⋅(2∗(n∕∕2 − 1− i) + 1)  , где a[i]  — i-ое число фантиков, значение i проходит половину круга относительно своей стартовой позиции.

Вывести все эти числа от 1  до            9
n(1 ≤ n ≤ 10)  .

Для n = 4  и чисел 10  , 3  , 5  , 4  получатся следующие убывающие взвешенные суммы:

10⋅3 + 3⋅1 = 33  ,

3⋅3 + 5⋅1 = 14  ,

5⋅3 + 4⋅1 = 19  ,

4⋅3 + 10⋅1 = 22

Вложения к задаче
Показать ответ и решение
f = open("3.txt")
n = int(f.readline())
a = [int(f.readline()) for i in range(n)]
s = [0] * n
s[0] = sum(a[:n // 2])
for i in range(1, n):
    s[i] = s[i - 1] - a[i - 1] + a[(i + n // 2 - 1) % n]

u = [0] * n

#База. Посчитали первую убывающую
#взвешенную сумму
for i in range(n // 2):
    t = n//2 - 1 - i
    u[0] += a[i] * (2*t + 1)

#Пересчитываем все остальные
for i in range(1, n):
    u[i] = u[i - 1] + 2*s[i] - a[(i - 1 + n // 2) % n] - a[i - 1]  * (2 * (n//2 - 1 - 0) + 1)

print(*u)

Ответ: 1400 2300 3200 4100 4400 3500

Специальные программы

Все специальные программы

Программа
лояльности v2.0

Приглашай друзей в Школково и получай вознаграждение до 10%!

Крути рулетку
и выигрывай призы!

Крути рулетку и покупай курсы со скидкой, которая привязывается к вашему аккаунту.

Бесплатное онлайн-обучение

Для школьников из приграничных территорий России, проживающих в ДНР, ЛНР, Херсонской, Запорожской, Белгородской, Курской, Брянской областях и Крыму.

Налоговые вычеты

Узнай, как получить налоговый вычет при оплате обучения в «Школково».

Специальное предложение
для учителей

Бесплатный доступ к любому курсу подготовки к ЕГЭ, ОГЭ и олимпиадам от «Школково». Мы с вами делаем общее и важное дело, а потому для нас очень значимо быть чем-то полезными для учителей по всей России!

Вернём деньги за курс
за твою сотку на ЕГЭ

Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!

cyberpunkMouse
cyberpunkMouse
Рулетка
Вы можете получить скидку в рулетке!