Для решения задачи о Красной Шапочке, которая собирает клюкву, мы можем использовать динамическое программирование. Основная идея заключается в том, чтобы отслеживать максимальную энергию, которую Красная Шапочка может иметь на каждом из кочек, учитывая затраты энергии на прыжки и получаемую энергию.
Вот пример кода на Python, который решает данную задачу:
def max_energy(E, N, energy_changes):
# Создаем массив для хранения максимальной энергии на каждом кочке
dp = [-1] * (N + 2) # -1 означает, что точка недоступна
dp[0] = E # Начальная энергия на берегу
for i in range(N + 1):
if dp[i] == -1:
continue # Если в этой точке энергии нет, пропускаем
# Пытаемся прыгнуть на все возможные кочки от текущей
for j in range(i + 1, N + 2):
cost = j - i # Стоимость прыжка
if dp[i] >= cost: # Если хватает энергии на прыжок
new_energy = dp[i] - cost + (energy_changes[j - 1] if j <= N else 0)
dp[j] = max(dp[j], new_energy) # Обновляем максимальную энергию
return dp[N + 1] if dp[N + 1] != -1 else -1
# Чтение входных данных
E = int(input().strip())
N = int(input().strip())
energy_changes = [int(input().strip()) for _ in range(N)]
# Вычисление и вывод результата
result = max_energy(E, N, energy_changes)
print(result)