计算几何
题号:NC19248
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

qy姐姐最可爱了!!!
qy姐姐最近开始学习计算几何,由于她学的太好了,数学老师十分的器重她。
一天小A拿着辅导书上的题目问数学老师:求有多少两个向量A和B,满足:1.两条向量在x轴和y轴的分量都是整数。2.a <= dot(A,B) <= b 3.c <= cross(A,B) <= d.
数学老师被这道题目难住了,于是他找到了qy姐姐为小A解决这个问题,qy姐姐当然轻松解决啦,现在请问你能否为小A解决这个问题呢?

输入描述:

第一行一个数T表示询问组数

之后t行每一行四个数a,b,c,d,意义见题目描述

输出描述:

一个整数表示所有答案的异或和。
示例1

输入

复制
2
1 1 1 1
1 1 0 1

输出

复制
4

说明

其中dot(A,B)表示向量A和向量B的点积,cross表示向量A和向量B的叉积。

满足 dot(A,B)=1, cross(A,B)=0 的向量 A, B 有四对:A=(1,0), B=(1,0); A=(-1,0), B=(-1,0); A=(0,1), B=(0, 1); A=(0,-1), B=(0,-1)

满足 dot(A,B)=1, cross(A,B)=1 的向量 A, B 有八对:A=(1,-1), B=(1,0); A=(1,0), B=(1,1); A=(1,1), B=(0,1); A=(0,1), B=(-1, 1); A=(0,-1), B=(1,-1); A=(-1,1), B=(-1,0); A=(-1,0), B=(-1,-1); A=(-1,-1), B=(0,-1)
所以两组询问的答案分别是 8 和 12, 输出8^12=4(^表示异或)

备注:

T<=1e5

|a|,|b|,|c|,|d|<=1000

保证不存在无穷解的情况