values длины n и массив весов weights длины m, причём m ≤ n. Счёт сначала равен нулю.
Нужно сделать ровно m ходов. На ходе номер k (с нуля) вы забираете из values либо первый, либо последний элемент x — он удаляется из массива — и прибавляете к счёту weights[k] · x.
Верните наибольший счёт, который можно получить после всех m ходов.values=[4, -2, 5], weights=[2, -1] → 12
Сначала берём 5 справа с весом 2 (+10), затем -2 справа с весом -1 (+2): итого 12.
values=[-3, 1, 1, -3], weights=[-1, -1] → 6
Оба отрицательных числа, умноженные на -1, дают по +3: берём -3 слева и -3 справа, итого 6.
values=[7, 1, 2], weights=[3] → 21
Ход один: 7 слева с весом 3 даёт 21, а 2 справа — только 6.
m = weights.length ≤ 300m ≤ n = values.length ≤ 10⁵values[i], weights[i] ≤ 1000values=[4, -2, 5], weights=[2, -1]
12
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 119 тестов на сервере, включая скрытые.