给定一个 的象棋棋盘。棋盘的行和列编号从 到 。单元格 位于第 列和第 行的交点。 “车” 是一种国际象棋棋子,每一步可以沿着垂直或水平方向移动任意格数。棋盘上有 个车(),它们被放置在棋盘上,且任意两个车不会互相攻击。也就是说,没有任意一对车处于同一行或同一列。 每一步,你可以选择一个车,将其沿垂直或水平方向移动任意格数。移动后,该车不能被其他任何车攻击。请问,最少需要多少步才能将所有车都放到主对角线上? 棋盘的主对角线是所有 的单元格,其中 。
输入描述:
第一行包含测试用例数 ()。接下来是  个测试用例的描述。每个测试用例的第一行包含两个整数  和 ,分别表示棋盘的大小和车的数量(,)。接下来的  行,每行包含两个整数  和 ,表示第  个车的位置,即该车位于 ()。保证初始状态下没有两辆车互相攻击。所有测试用例中  的总和不超过 。


输出描述:
对于每个测试用例,输出一个整数,表示将所有车放到主对角线上所需的最小步数。可以证明一定存在可行方案。
示例1

输入

4
3 1
2 3
3 2
2 1
1 2
5 3
2 3
3 1
1 2
5 4
4 5
5 1
2 2
3 3

输出

1
3
4
2

说明

前三个测试用例的可能移动方案:

1. (2, 3) \to (2, 2)
2. (2, 1) \to (2, 3)(1, 2) \to (1, 1)(2, 3) \to (2, 2)
3. (2, 3) \to (2, 4)(2, 4) \to (4, 4)(3, 1) \to (3, 3)(1, 2) \to (1, 1)
加载中...