QOJ.ac

QOJ

実行時間制限: 2.0 s メモリ制限: 1024 MB 満点: 100 ハック可能 ✓

#18130. 马塞尔的冒险

統計

你有一只可爱的邦布(Bangboo),它正在参加 “Marcel 的大冒险”。

这只邦布在三维空间中移动。它的起点是 $(S_x, S_y, S_z)$,终点是 $(T_x, T_y, T_z)$。你可以将它视为一个以 $(S_x, S_y, S_z)$ 为中心的单位立方体。三维空间中存在 $n$ 个障碍物,每个障碍物都是一个以 $(x_i, y_i, z_i)$ 为中心的单位立方体。保证起点、终点以及所有障碍物的坐标两两不同,且在 $(S_x, S_y, S_z - 1)$ 和 $(T_x, T_y, T_z - 1)$ 处必须存在障碍物。

邦布可以进行传送。在每一步中,它有 $m$ 种可选的传送方式。假设它当前位于 $(x, y, z)$。第 $i$ 种传送方式会将其送往 $(x + a_i, y + b_i, z + c_i)$,随后它会进行自由落体。形式化地,它将传送到 $(x + a_i, y + b_i, d)$,其中 $d$ 是满足 $d \le z + c_i$ 且 $(x + a_i, y + b_i, d - 1)$ 处有障碍物的最大值。如果在 $(x + a_i, y + b_i, z + c_i)$ 处存在障碍物,或者不存在满足条件的 $d$,则无法进行该传送。

你的目标是使邦布从起点出发,用最少的步数到达终点。如果无法到达终点,则输出 $-1$。

输入格式

第一行包含一个整数 $T$ ($1 \le T \le 500$),表示测试用例的数量。

对于每个测试用例:

第一行包含两个整数 $n, m$ ($2 \le n \le 10^3$,$1 \le m \le 10^3$),分别表示障碍物的数量和邦布可用的传送方式数量。

第二行包含六个整数 $S_x, S_y, S_z, T_x, T_y, T_z$ ($0 \le S_x, S_y, S_z, T_x, T_y, T_z \le 10^9$),表示邦布的起点和终点。

接下来的 $n$ 行,每行包含三个整数 $x_i, y_i, z_i$ ($0 \le x_i, y_i, z_i \le 10^9$),表示第 $i$ 个障碍物的坐标。保证在 $(S_x, S_y, S_z - 1)$ 和 $(T_x, T_y, T_z - 1)$ 处必须存在障碍物。

接下来的 $m$ 行,每行包含三个整数 $a_i, b_i, c_i$ ($|a_i|, |b_i|, |c_i| \le 10^9$),表示第 $i$ 种传送方式。

对于每个测试用例,保证所有输入的坐标两两不同,且所有传送方式两两不同。

保证所有测试用例的 $n$ 之和不超过 $10^3$,且 $m$ 之和不超过 $10^3$。

输出格式

对于每个测试用例,在一行中输出一个整数,表示从起点到达终点所需的最少步数。如果无法到达终点,则输出 $-1$。

样例

输入 1

2
6 4
3 3 3 5 5 5
3 3 2
5 5 4
5 5 7
4 5 5
2 3 2
4 1 1
-1 0 3
2 -2 -1
1 4 9
1 0 0
3 2
0 0 1 1 1 1
0 0 0
1 1 0
1 1 2
1 1 1
1 1 2

输出 1

5
-1

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.