#CF1995A. A. 对角线

A. 对角线

A. 对角线
每个测试的时间限制:1秒
内存限制:256兆字节

Vitaly503 拿到了一块边长为 nn 的棋盘和 kk 个棋子。他发现需要将这 kk 个棋子全部放在棋盘的格子中(每个格子最多放一个棋子)。

我们用 (i,j)(i, j) 表示第 ii 行第 jj 列的格子。对角线 是指满足 i+ji+j 值相同的所有格子的集合。例如,格子 (3,1)(3,1)(2,2)(2,2)(1,3)(1,3) 位于同一条对角线上,但 (1,2)(1,2)(2,3)(2,3) 则不在同一条对角线上。如果某条对角线上至少有一个棋子,则称该对角线为 被占用的

在所有可能的 kk 个棋子的放置方案中,求被占用的对角线数量的最小值。

输入
每个测试包含多组数据。第一行包含一个整数 tt1t5001 \le t \le 500)—— 数据组数。接下来是各组数据的描述。

每组数据只有一行,包含两个整数 nnkk1n1001 \le n \le 1000kn20 \le k \le n^2)—— 棋盘的边长和可用棋子的数量。

输出
对于每组数据,输出一个整数 —— 在所有 kk 个棋子放置完毕后,被占用的对角线的最小可能数量。

示例
输入

7
1 0
2 2
2 3
2 4
10 50
100 239
3 9

输出

0
1
2
3
6
3
5

说明

  • 第一个测试用例:没有棋子,所以被占用的对角线数为 00
  • 第二个测试用例:两个棋子可以都放在对角线 (2,1),(1,2)(2,1),(1,2) 上,因此答案为 11
  • 第三个测试用例:33 个棋子不能全部放在同一条对角线上,但可以将它们放在 (1,2),(2,1),(1,1)(1,2),(2,1),(1,1) 上,这样占用 22 条对角线。
  • 第七个测试用例:无论怎么放,棋子都会占满全部 55 条对角线。