values длины n.
Для каждой позиции i рассмотрим отрезки, которые начинаются в i и идут вправо: values[i..j]. Побитовое OR такого отрезка не убывает с ростом j и достигает максимума, когда отрезок дотягивается до конца массива. Однако тот же максимум часто набирается раньше.
Верните массив длины n, где на месте i стоит длина самого короткого непустого отрезка, начинающегося в i, побитовое OR которого равно наибольшему возможному OR отрезков с началом в i.values=[4, 1, 0, 2, 6] → [4, 4, 3, 2, 1]
От позиции 0 до конца OR равен 7, и все три бита набираются только к элементу 2 — длина 4. От позиции 1 бит 4 появляется лишь в последнем элементе — тоже 4. Дальше: [0, 2, 6] — 3, [2, 6] — 2, [6] — 1.
values=[0, 0] → [1, 1]
Максимальный OR от любой позиции равен 0, его даёт уже один элемент.
values=[5, 3] → [2, 1]
values=[4, 1, 0, 2, 6]
[4, 4, 3, 2, 1]
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 98 тестов на сервере, включая скрытые.