CF1995A.Diagonals

传统题 时间 2000 ms 内存 256 MiB 3 尝试 1 已通过 1 标签

Diagonals

题目描述

Vitaly503 得到了一块边长为 nn 的棋盘和 kk 枚棋子。他意识到需要将这 kk 枚棋子全部放在棋盘的格子上(每个格子最多只能放一枚棋子)。

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

请你计算,在所有可能的放置方案中,最少会有多少条对角线被占据。

输入格式

每组测试数据包含多组输入。第一行包含一个整数 tt1t5001 \le t \le 500),表示测试数据组数。接下来每组数据一行,包含两个整数 nnkk1n100,0kn21 \le n \le 100, 0 \le k \le n^2),分别表示棋盘的边长和可用棋子的数量。

输出格式

对于每组测试数据,输出一个整数,表示在放置所有 kk 枚棋子后,最少会有多少条对角线被占据。

说明/提示

在第一个测试用例中,没有棋子,因此不会有对角线被占据,答案为 0。在第二个测试用例中,两枚棋子可以都放在对角线 (2,1),(1,2)(2, 1), (1, 2) 上,因此答案为 1。在第三个测试用例中,无法将 3 枚棋子都放在同一条对角线上,但可以将它们放在 (1,2),(2,1),(1,1)(1, 2), (2, 1), (1, 1),这样会占据 2 条对角线。在第七个测试用例中,无论如何放置,棋子都会占据全部 5 条对角线。

由 ChatGPT 4.1 翻译

样例

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

在线编程 IDE

建议全屏模式获得最佳体验