Honeycomb
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld

题目描述

小F最近在研究蜂巢,如下图所示,这是一个蜂巢的横剖图,每一个格子都是一个正六边形,多个格子平铺构成一个无限大的平面。我们以中央的格子作为原点,按照下图规律,一圈一圈向外将每个格子都编上号。

小F想知道,如果一个蜜蜂当前在编号为x的格子处,它想到达编号为y的格子,最优情况下它最少需要经过多少个格子(包含起点终点)。蜜蜂在蜂巢里只能爬行,也就是说它每次只能爬到相邻的格子里。
你需要支持多组询问。

输入描述:

第一行,一个整数 ,表示有T组询问。
对于每组询问,输入一行。每行两个正整数 ,表示两个格子的编号。

输出描述:

对于每组询问,输出一行。每行一个整数,表示两个格子之间的格子数量。
示例1

输入

复制
6
3 6
1 12
12 18
12 23
48 60
42 54

输出

复制
3
3
5
4
9
9