ranges, каждый имеет вид [l, r] и задаёт набор чисел l, l + 1, ..., r.
За одну операцию из набора выбирают два числа a и b и заменяют их на a // 4 и b // 4 (деление с округлением вниз).
Для каждого запроса найдите наименьшее число операций, после которых все числа набора станут нулями. Запросы независимы. Верните сумму ответов по всем запросам.ranges=[[1, 3]] → 2
Набор [1, 2, 3]: каждое число обнуляется за одно деление. Сначала берём 1 и 2, затем 3 вместе с уже нулевым числом — 2 операции.
ranges=[[4, 5], [1, 2]] → 3
Для [4, 5] нужно 2 операции: 4 и 5 делятся вместе дважды. Для [1, 2] — одна. Итого 3.
ranges=[[2, 5]] → 3
Числам 2 и 3 нужно по одному делению, а 4 и 5 — по два. Всего 6 делений, по два за операцию — 3 операции.
len(ranges) ≤ 10⁵ranges[i] = [l, r]l < r ≤ 10⁹ranges=[[1, 3]]
2
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 91 тест на сервере, включая скрытые.