Это сложная версия задачи. Отличие между версиями заключается в том, что в этой версии ограничение на сумму $$$r - l + 1$$$ по всем наборам входных данных отсутствует.
У вас есть переменная $$$x$$$, изначально равная $$$0$$$. За одну операцию вы можете выполнить одно из следующих действий:
Для неотрицательного целого числа $$$n$$$ обозначим через $$$f(n)$$$ минимальное количество операций, необходимое, чтобы сделать $$$x$$$ равным $$$n$$$. Можно показать, что это всегда возможно.
Вам даны два целых числа $$$l$$$ и $$$r$$$. Найдите $$$\sum\limits_{n = l}^{r} f(n)$$$. Поскольку ответ может быть очень большим, выведите его по модулю $$$998\,244\,353$$$.
Каждый тест состоит из нескольких наборов входных данных. В первой строке находится одно целое число $$$t$$$ ($$$1 \le t \le 10^4$$$) — количество наборов входных данных. Далее следует описание наборов входных данных.
Единственная строка каждого набора входных данных содержит два целых числа $$$l$$$ и $$$r$$$ ($$$0 \le l \le r \le 10^{18}$$$).
Для каждого набора входных данных выведите одно целое число — значение $$$\sum\limits_{n = l}^{r} f(n)$$$ по модулю $$$998\,244\,353$$$.
54 41 3127 1270 1000999999999999900001 1000000000000000000
66725383102936941
В первом наборе входных данных $$$l = r = 4$$$. Изначально $$$x = 0$$$. Одна из оптимальных последовательностей из $$$6$$$ операций выглядит следующим образом:
Во втором наборе входных данных $$$l = 1$$$ и $$$r = 3$$$. Имеем $$$f(1) = 1$$$, $$$f(2) = 3$$$ и $$$f(3) = 2$$$. Поэтому ответ равен $$$1 + 3 + 2 = 6$$$.
В третьем наборе входных данных $$$l = r = 127$$$. Можно выполнить операцию $$$1$$$ семь раз подряд и получить $$$x = 2^7 - 1 = 127$$$. Можно показать, что получить $$$x = 127$$$ за $$$6$$$ или меньше операций невозможно. Поэтому $$$f(127) = 7$$$, и ответ равен $$$7$$$.