QOJ.ac

QOJ

حد الوقت: 20 s - 40 s حد الذاكرة: 2048 MB مجموع النقاط: 13

#12504. 免疫接种行动

الإحصائيات

让每种疫苗都能提供给全球人口在许多方面都是一个复杂的问题。Ñambi 正在牵头优化配送工作。为了尽可能减少获取障碍,她试图让自动化机器人直接在患者家中运送和接种疫苗。

在当前的迭代中,Ñambi 设计的机器人将在一条从西向东延伸的单行道上工作。因此,机器人接受单一指令“移动 $x$ 米”。如果 $x$ 为正,机器人向东移动 $x$ 米。如果 $x$ 为负,机器人向西移动 $-x$ 米。

机器人每天开始工作时,都会加载当天必须提供的所有免疫接种信息。每条信息都包含疫苗的当前位置(用于取货)和必须接收该疫苗的患者位置(用于送货)。每种疫苗都是为一名患者定制的。当然,疫苗的送货地点永远不会与其取货地点相同。机器人必须先取走疫苗,然后才能将其送到患者手中。

机器人被编程为在第一次经过疫苗的取货地点时,自动拾取并装载疫苗到其货舱中。机器人还被编程为在经过患者位置时,如果疫苗已被拾取,则立即将疫苗送到患者手中。Ñambi 想要追踪每次移动指令后发生了多少次疫苗接种。当疫苗被送达时,即发生了一次疫苗接种。请注意,疫苗可能在之前的任何指令中被拾取,也可能在同一指令中被拾取,但在送达之前。

下图说明了一种可能的情况(见下文样例 1)。笑脸代表机器人的初始位置,长黑线代表街道。线上的标记是取货地点,线下的标记是送货地点。最后,下方的箭头代表机器人按顺序进行的移动,并标注了移动过程中完成的送货次数。

每次移动中发生的情况如下,按顺序排列:

  • 移动 1。机器人拾取疫苗 5 和 1,然后送达疫苗 1,并在移动结束时拾取疫苗 3。请注意,机器人经过了疫苗 3 的送货地点,但由于这发生在拾取疫苗 3 之前,因此无法送达。
  • 移动 2。机器人经过了疫苗 1 和 4 的送货地点。然而,疫苗 1 已经送达,而疫苗 4 尚未被拾取,因此没有发生疫苗接种。
  • 移动 3。机器人送达疫苗 3。
  • 移动 4。机器人拾取疫苗 2,送达疫苗 5,并拾取疫苗 4。

请注意,疫苗 2 和 4 虽然被拾取但未送达,因为从未到达疫苗 2 的送货地点,且在拾取疫苗 4 后未到达其送货地点。

给定待接种疫苗的列表和机器人按顺序执行的移动指令列表,计算每次指令后完成了多少次疫苗接种。

输入格式

输入的第一行给出了测试用例的数量 $T$。接下来是 $T$ 个测试用例。每个测试用例包含 4 行。第一行包含两个整数 $V$ 和 $M$,分别表示疫苗数量和移动指令数量。

第二行包含 $V$ 个整数 $P_1, P_2, \dots, P_V$,表示第 $i$ 种疫苗必须在机器人初始位置以东 $P_i$ 米处拾取。请注意,多种疫苗可以有相同的取货地点。

第三行包含 $V$ 个整数 $D_1, D_2, \dots, D_V$,表示第 $i$ 种疫苗必须在机器人初始位置以东 $D_i$ 米处送达。请注意,多种疫苗可以有相同的送货地点。

最后一行包含 $M$ 个整数 $X_1, X_2, \dots, X_M$,其中 $|X_j|$ 是机器人第 $j$ 次移动指令必须移动的米数。如果 $X_j$ 为正,则第 $j$ 次移动必须向东,如果为负,则向西。请注意,疫苗接种发生的顺序可能与输入的编号不同,但移动指令按给定的顺序发生。

输出格式

对于每个测试用例,输出一行 Case #x: y1 y2 ... yM,其中 $x$ 是测试用例编号(从 1 开始),$y_j$ 是在执行第 $j$ 条给定移动指令期间完成的疫苗接种次数。

数据范围

内存限制:2 GB。 $1 \le T \le 100$。 $1 \le P_i \le 10^9$,对于所有 $i$。 $1 \le D_i \le 10^9$,对于所有 $i$。 $P_i \neq D_i$,对于所有 $i$。 $-10^9 \le X_j \le 10^9$,对于所有 $j$。 $X_j \neq 0$,对于所有 $j$。

子任务

测试集 1(可见判决) 时间限制:20 秒。 $1 \le V \le 100$。 $1 \le M \le 100$。

测试集 2(隐藏判决) 时间限制:40 秒。 $1 \le V \le 10^5$。 $1 \le M \le 10^5$。

样例

输入 1

4
5 4
121 312 271 422 75
199 464 160 234 368
271 -109 -70 371
2 2
1 3
4 4
4 -1
2 2
1 4
4 3
4 -1
1 10
1
2
-987654321 -987654321
-987654321 -987654321
-987654321 987654321 987654321
987654321 987654321 987654323

输出 1

Case #1: 1 0 1 1
Case #2: 2 0
Case #3: 1 1
Case #4: 0 0 0 0 0 0 0 0 0 1

说明

样例 1 即为题目描述中解释和说明的案例。

在样例 2 和样例 3 中,请注意,只有在先访问取货地点的情况下,才有可能在同一次移动中拾取并送达疫苗。此外,请注意,在移动结束时恰好拾取和送达疫苗是可能的。

在样例 4 中,机器人向西移动 $987654321$ 米五次,然后向东移动 $987654321$ 米四次,最后向东移动 $987654323$ 米。唯一的取货和送货都在最后一次移动中完成。请注意,指令可能非常极端,因此机器人可能在某些时候距离其初始位置非常远,无论是在西边还是东边。

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.