total можно единственным способом записать как сумму различных степеней двойки (это его двоичная запись). Выпишите эти степени по возрастанию — получится массив кусков pieces, нумерация с 0.
Дан массив запросов queries, где queries[i] = [l, r]. Ответ на запрос — произведение pieces[l] · pieces[l+1] · ... · pieces[r]. Так как оно может быть очень большим, верните его по модулю 10⁹ + 7.
Верните ответы на все запросы в их порядке.total=13, queries=[[0, 1], [1, 2], [2, 2]] → [4, 32, 8]
13 = 1 + 4 + 8, поэтому куски [1, 4, 8]. Произведения: 1·4 = 4, 4·8 = 32, и просто 8.
total=6, queries=[[0, 1]] → [8]
6 = 2 + 4, куски [2, 4], их произведение 8.
total ≤ 10⁹queries.length ≤ 10⁵l ≤ r < pieces.lengthtotal=13, queries=[[0, 1], [1, 2], [2, 2]]
[4, 32, 8]
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 55 тестов на сервере, включая скрытые.