Решаю задачу по программированию, лимит времени 2с
Самые долгие тесты-2.077с
код:
n, m = map(int, input('').split())
grades = list(map(int, input().split()))
def calculate(m, grades):
result = 0
for i in range(m):
if grades[i] != 0:
result += grades[i]**2
counter = 0
for j in range(i + 1, m):
if counter == grades[i]:
break
if grades[j] != 0:
result += grades[j]
counter += 1
return result
print(calculate(m, grades))
Условие:
Аркадий — главный редактор журнала по арт-критике. По долгу службы Аркадий постоянно сталкивается с фундаментальными вопросами "Что есть красота?”, “Как понять что красиво, а что нет?”.
Главред понимает, что искусство можно оценивать по-разному и к разным арт-объектам можно применять разные метрики. За годы работы в арт-индустрии Аркадий выработал собственный принцип оценки красоты любого произведения искусства. Он может сказать, красив арт-объект или нет, вне зависимости от количества критериев оценки "красивости".
Принцип Аркадия состоит в следующем:
Для произвольного объекта искусства определяется некоторое количество критериев в определенном порядке для оценки “красивости”. По каждому критерию можно набрать максимум n первичных баллов. Вторичные баллы за условный критерий i определяются следующим образом:
Если при оценке критерия набирается
ai первичных баллов, то Аркадий начисляет критерию a^2i
вторичных баллов
Кроме того, Аркадий прибавляет бонусные баллы за ai следующих ненулевых оценок по другим критериям (прибавляются первичные баллы)
Для последнего критерия дополнительные баллы не начисляются
Например, если
n=10, Аркадий оценивал картину по пяти критериям, и арт-объект набрал
[10,0,1,0,3] первичных баллов соответственно, то его итоговый результат будет равен 117 вторичных баллов, так как за первый критерий он получил
10^2+1+3 балла, за второе и четвертое — по 0, за третье — 1^2+3, за пятое — 3^2.Аркадий дал последовательность результатов m оценок критериев произведения искусства. Определите общую сумму вторичных баллов.