values и движетесь только вперёд: с позиции i можно перепрыгнуть на любую позицию j > i, пропуская сколько угодно элементов.
За каждую посещённую позицию (включая стартовую) вы получаете values[i] очков. Но если вы прыгаете между числами разной чётности, со счёта списывается penalty.
Остановиться можно где угодно. Верните максимальный счёт, который удастся набрать.values=[4, 7, 10, 3, 8], penalty=4 → 22
Выгодно пройти по всем чётным: 4 → 10 → 8 даёт 22. Если добавить 7 и 3, придётся дважды сменить чётность (4 → 7 → 10 ...), а каждая смена стоит 4 — выйдет меньше.
values=[2, 9, 11, 13], penalty=1 → 34
Одна смена чётности стоит всего 1: 2 + 9 + 11 + 13 - 1 = 34.
values=[5, 1], penalty=100 → 6
values=[4, 7, 10, 3, 8], penalty=4
22
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 109 тестов на сервере, включая скрытые.