#10093. 分行街道

内存限制:256 MiB 时间限制:1000 ms 标准输入输出
题目类型:传统 评测方式:文本比较
上传者: ButterflyDew

题目描述

城市扩建的规划是个令人头疼的大问题。规划师设计了一个及其复杂的方案:当城市规模扩大之后,把与原来城市结构一样的区域复制或旋转 90 度之后建设在原来的城市周围(详细的说,将原来的城市复制一遍放在原城市的上方,将顺时针旋转 90 度后的城市放在原城市的左上方,将逆时针旋转 90 度后的城市放在原城市的左方,再用道路将四部分首位连接起来,如下图所示

容易看出,扩建后的城市的各个房屋仍然由一条道路连接。定义 N 级城市为拥有 2^{2N} 座房屋的城市。对于任意等级的城市,从左上角开始沿着唯一的道路走,依次为房屋标号,就能得到每间房屋的编号了。住在其中两间房屋里的人们想做的,如果城市发展到了一定等级,他俩各自所处的房屋之间的直线距离是多少。你可以认为图中的每个格子都是边长为 10 的正方形,房屋均位于每个格子的中心点上( T 次询问,每次输入等级 N ,两个编号 S,D ,求 S D 之间的直线距离, T\le 10^4,N\le31 )。

输入格式

第一行一个整数 T ,表示询问个数

之后 T 行每行 3 个整数 N,S,D 表示等级个数,两个房屋的编号

输出格式

T 行,每行一个整数,表示两个房屋之间直线距离四舍五入之后的结果

样例

3
1 1 2
2 16 1
3 4 33

10
30
50

数据范围与提示

对于 25\% 的数据,保证 N\le 5

对于 100\% 的数据,保证 N\le 31,1\le S,D\le 2^{62}