CF1623A Robot Cleaner

题目描述

一个机器人清洁器被放置在一个矩形房间的地板上,房间四周被墙壁包围。地板由 $n$ 行 $m$ 列组成。地板的行从上到下编号为 $1$ 到 $n$,列从左到右编号为 $1$ 到 $m$。第 $r$ 行第 $c$ 列的格子记作 $(r,c)$。机器人的初始位置为 $(r_b, c_b)$。 每过一秒,机器人会沿着 $dr$ 行和 $dc$ 列移动,即一秒后,机器人会从格子 $(r, c)$ 移动到 $(r + dr, c + dc)$。初始时 $dr = 1$,$dc = 1$。如果移动方向上遇到垂直墙壁(左墙或右墙),则在移动前 $dc$ 取相反数,即 $dc$ 变为 $-dc$。如果遇到水平墙壁(上墙或下墙),则在移动前 $dr$ 取相反数,即 $dr$ 变为 $-dr$。 每一秒(包括机器人开始移动前的时刻),机器人会清洁与其当前位置同一行或同一列的所有格子。房间中只有一个脏格子,位于 $(r_d, c_d)$。机器人的任务是清洁这个脏格子。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1623A/353cecd0655788f0456756b617e53c4b27217e92.png) 上图为第一个样例的示意图。蓝色弧线表示机器人,红色星号表示目标脏格子。每一秒机器人会清洁一整行和一整列,用黄色条纹表示。给定地板的大小 $n$ 和 $m$,机器人的初始位置 $(r_b, c_b)$ 以及脏格子的位置 $(r_d, c_d)$,请你计算机器人完成清洁任务所需的时间。

输入格式

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

输出格式

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

说明/提示

在第一个样例中,地板大小为 $10\times 10$。机器人的初始位置为 $(6, 1)$,脏格子的位置为 $(2, 8)$。具体过程可见题目描述中的示意图。 在第二个样例中,地板大小相同,但机器人的初始位置变为 $(9, 9)$,脏格子的位置为 $(1, 1)$。在这个例子中,机器人直接走到脏格子并清洁了它。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1623A/353cecd0655788f0456756b617e53c4b27217e92.png) 在第三个样例中,地板大小为 $9 \times 8$。机器人的初始位置为 $(5, 6)$,脏格子的位置为 $(2, 1)$。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1623A/739ff7881b31dac6b032f49a1d030ea2239cce23.png) 在第四个样例中,地板大小为 $6 \times 9$。机器人的初始位置为 $(2, 2)$,脏格子的位置为 $(5, 8)$。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1623A/894677a107944433f0765cac55f3b1894977a3b1.png) 在最后一个样例中,机器人一开始就和脏格子在同一列,因此可以立即清洁该格子。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1623A/63428259d37d691365ae24c739cf43777cc8eec7.png) 由 ChatGPT 4.1 翻译