C1789 [Contest #12]XOR Pair

内存限制:256 MB 时间限制:2000 ms

题目描述

给出$4$个非负整数$a$,$b$,$n$和$m$,求出有多少数对$(x,y)$ ($0 \le x \le a, 0 \le y \le b$)满足$x \oplus y=n$并且$|x-y| \le m$,其中$\oplus$是异或位运算。

输入格式

输入有多组数据。第一行有一个整数$T$ ($1 \le T \le 10^5$),表示测试数据组数。然后对于每组数据:

第一行包含$4$个非负整数$a$,$b$,$n$和$m$ ($0 \le a, b, n, m \le 10^{18}$),含义如题所述。

输出

对于每组数据,输出一个非负整数表示这样的数对个数。

样例

样例输入 1

5 1 1 1 1 10 10 10 10 100 100 100 100 1000 1000 1000 1000 10000 10000 10000 10000

样例输出 1

2 6 74 978 3618

提示