Капітан Джек Горобець#12293

Капітан Джек Горобець

1 секунда
256 мегабайтів
Середня

Джек Горобець — один з найвеличніших капітанів. Коли він знайшов новий скарб, він порахував кількість монет. Однак, коли він пізніше перевірив свої монети, він зрозумів, що деякі з них пропали. Джек Горобець — дуже приблизна людина, тому він хоче визначити, скільки монет він втратив.

Він помітив, що для кожного сегмента його подорожі, від -го кілометра до -го кілометра, кількість монет, які він втрачає в кожному кілометрі, обчислюється за формулою:

(l\ \&\ r) + (l\ ⊕\ r)

Де представляє операцію бітового AND, а представляє операцію бітового XOR.

Джек також знає, що він проходить від -го кілометра до -го кілометра, де a \leq l \leq r \leq b для всіх і в різний час.

Тепер капітан хоче знайти кількість втрачених монет. very important ! : answer mod 1e6+3

Формально, обчисліть наступне:

\displaystyle \sum_{l=a}^b \sum_{r=l}^b ((l \oplus r)+(l \& r)) \cdot (r-l)

Вхідні дані

Перший рядок містить одне ціле число (1 \le t \leq 10^4) — кількість тестових випадків.

Кожен тестовий випадок містить два цілі числа , (1 \leq a \leq b \leq 10^{9}, b - a \leq 2\cdot10^5) — межі діапазону.

Гарантується, що \sum (b-a) по всіх тестових випадках не перевищує 2\cdot10^5.

Вихідні дані

Для кожного тестового випадку виведіть кількість втрачених монет за модулем 10^9 + 7. very important ! : answer mod 1e6+3

Приклади

Приклад 1

Loading
Loading

Примітка

У першому тестовому випадку капітан не рухався, тому він не втратив жодної монети.

У другому тестовому випадку капітан проходить ці діапазони:

  1. : Він втратив (2\ \&\ 3) + (2\ \oplus \ 3) = 3 монети за кожен кілометр. Є один кілометр, тому він втратив монети за цей діапазон.

  2. : Він втратив (2\ \&\ 4) + (2\ \oplus \ 4) = 6 монет за кожен кілометр. Є два кілометри. У першому кілометрі він втратив монет, а в другому кілометрі він втратив монет. Отже, він втратив монет всього за цей діапазон.

  3. : Він втратив (3\ \&\ 4) + (3\ \oplus \ 4) = 7 монет за кожен кілометр. Є один кілометр, тому він втратив монет за цей діапазон.

Врешті-решт, капітан втратив 3 + 12 + 7 = 22 монети.

Оцінювання

  1. Підзадача ( балів) : (1 \le a \le b \le 40)

  2. Підзадача ( балів) : (1 \le \sum (b-a) \le 1000)

  3. Підзадача ( балів) : Без додаткових обмежень