values длины n и массив targets длины m.
Разрежьте values на ровно m непустых подряд идущих кусков (каждый элемент попадает ровно в один кусок, порядок не меняется) так, чтобы побитовое AND всех элементов j-го слева куска было равно targets[j].
Стоимость разреза — сумма последних элементов всех кусков. Верните наименьшую возможную стоимость или -1, если разрезать так нельзя.values=[6, 5, 12, 4, 7], targets=[4, 4] → 12
Подходят два разреза: [6, 5] | [12, 4, 7] (6 & 5 = 4, 12 & 4 & 7 = 4) и [6, 5, 12] | [4, 7] (6 & 5 & 12 = 4, 4 & 7 = 4). Их стоимости 5 + 7 = 12 и 12 + 7 = 19, ответ 12. Разрез [6, 5, 12, 4] | [7] не годится: AND второго куска равен 7, а не 4.
values=[3, 3, 3], targets=[3] → 3
Кусок один — весь массив; его AND равен 3, а последний элемент 3.
values=[8, 1, 9], targets=[1, 9] → -1
Первый кусок должен давать AND 1, но 8 & 1 = 0, а 8 сам по себе не равен 1 — разрезать нельзя, ответ -1.
values=[6, 5, 12, 4, 7], targets=[4, 4]
12
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 147 тестов на сервере, включая скрытые.