CF1623A.Robot Cleaner

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

Robot Cleaner

题目描述

一个机器人清洁器被放置在一个矩形房间的地板上,房间四周被墙壁包围。地板由 nnmm 列组成。地板的行从上到下编号为 11nn,列从左到右编号为 11mm。第 rr 行第 cc 列的格子记作 (r,c)(r,c)。机器人的初始位置为 (rb,cb)(r_b, c_b)

每过一秒,机器人会沿着 drdr 行和 dcdc 列移动,即一秒后,机器人会从格子 (r,c)(r, c) 移动到 (r+dr,c+dc)(r + dr, c + dc)。初始时 dr=1dr = 1dc=1dc = 1。如果移动方向上遇到垂直墙壁(左墙或右墙),则在移动前 dcdc 取相反数,即 dcdc 变为 dc-dc。如果遇到水平墙壁(上墙或下墙),则在移动前 drdr 取相反数,即 drdr 变为 dr-dr

每一秒(包括机器人开始移动前的时刻),机器人会清洁与其当前位置同一行或同一列的所有格子。房间中只有一个脏格子,位于 (rd,cd)(r_d, c_d)。机器人的任务是清洁这个脏格子。


上图为第一个样例的示意图。蓝色弧线表示机器人,红色星号表示目标脏格子。每一秒机器人会清洁一整行和一整列,用黄色条纹表示。给定地板的大小 nnmm,机器人的初始位置 (rb,cb)(r_b, c_b) 以及脏格子的位置 (rd,cd)(r_d, c_d),请你计算机器人完成清洁任务所需的时间。

输入格式

每组测试数据包含多个测试用例。第一行包含测试用例的数量 tt1t1041 \le t \le 10^4)。接下来每组测试用例占一行,每行包含六个整数 nnmmrbr_bcbc_brdr_dcdc_d1n,m1001 \le n, m \le 1001rb,rdn1 \le r_b, r_d \le n1cb,cdm1 \le c_b, c_d \le m),分别表示房间的大小、机器人的初始位置和脏格子的位置。

输出格式

对于每个测试用例,输出一个整数,表示机器人清洁脏格子所需的时间。可以保证机器人最终一定能够清洁到脏格子。

说明/提示

在第一个样例中,地板大小为 10×1010\times 10。机器人的初始位置为 (6,1)(6, 1),脏格子的位置为 (2,8)(2, 8)。具体过程可见题目描述中的示意图。

在第二个样例中,地板大小相同,但机器人的初始位置变为 (9,9)(9, 9),脏格子的位置为 (1,1)(1, 1)。在这个例子中,机器人直接走到脏格子并清洁了它。


在第三个样例中,地板大小为 9×89 \times 8。机器人的初始位置为 (5,6)(5, 6),脏格子的位置为 (2,1)(2, 1)


在第四个样例中,地板大小为 6×96 \times 9。机器人的初始位置为 (2,2)(2, 2),脏格子的位置为 (5,8)(5, 8)


在最后一个样例中,机器人一开始就和脏格子在同一列,因此可以立即清洁该格子。

由 ChatGPT 4.1 翻译

样例

5
10 10 6 1 2 8
10 10 9 9 1 1
9 8 5 6 2 1
6 9 2 2 5 8
2 2 1 1 2 1
7
10
9
3
0

在线编程 IDE

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