#CF2109B. 切片求生

切片求生

题目描述

决斗者 Mouf 和 Fouad 进入了一个 n×mn \times m 的网格竞技场!

Fouad 的怪物起始位置在单元格 (a,b)(a, b),其中行的编号为 11nn,列的编号为 11mm

Mouf 和 Fouad 将一直决斗,直到网格只剩下一个单元格为止。

每回合流程

每回合中:

  1. Mouf 先操作:他沿着某条行线或列线将网格切成两部分,然后丢弃不含 Fouad 怪物的那一部分。注意:网格必须至少有 22 个单元格,否则游戏已经结束。
  2. 然后,在同一回合中,Fouad 将他的怪物移动到剩余网格中的任意单元格(可以停留在原地)。

Mouf 希望最小化回合数,而 Fouad 希望最大化回合数。如果双方都采取最优策略,这场史诗般的决斗将持续多少回合?

可视化说明

第四个测试用例的游戏阶段可视化可参考原题中的图片(略)。

输入格式

每个测试包含多个测试用例。
第一行包含一个整数 tt1t1041 \le t \le 10^4)——测试用例的数量。
接下来每个测试用例的描述:

每个测试用例的第一行也是唯一一行包含四个整数 nnmmaabb2n,m1092 \le n, m \le 10^91an1 \le a \le n1bm1 \le b \le m)——分别表示网格的行数、列数、怪物的起始行和起始列。

输出格式

对于每个测试用例,输出一个整数——如果双方都最优操作,这场决斗将持续的回合数。

输入输出示例

输入:

8
2 2 1 1
3 3 2 2
2 7 1 4
2 7 2 2
8 9 4 6
9 9 5 5
2 20 2 11
22 99 20 70

输出:

2
4
4
3
6
8
6
10

样例解释

第一个测试用例n=2,m=2,a=1,b=1n = 2, m = 2, a = 1, b = 1
可能的决斗序列如下:

  • 11 回合:Mouf 沿着第 11 行和第 22 行之间的水平线切割网格,移除下半部分,剩下一个 1×21 \times 2 的网格。
    11 回合:Fouad 的怪物在单元格 (1,1)(1, 1)
  • 22 回合:Mouf 切割 1×21 \times 2 网格,移除一列,将单元格 (1,1)(1, 1) 孤立出来。
    决斗在 22 回合后结束。

第四个测试用例n=2,m=7,a=2,b=2n = 2, m = 7, a = 2, b = 2
可能的决斗序列如下:

  • 11 回合:Mouf 沿着第 22 列和第 33 列之间的垂直线切割网格,将其分成一个 2×22 \times 2 和一个 2×52 \times 5 的区域,然后移除 2×52 \times 5 的部分。
    11 回合:Fouad 将怪物移动到单元格 (1,1)(1, 1)
  • 从此时开始,决斗就像第一个测试用例一样进行——再用 22 回合将网格从 2×22 \times 2 缩小到单个 1×11 \times 1 单元格。
    总共决斗在 33 回合后结束。

你可以参考原题中的图片以了解第四个测试用例的图示说明。