QOJ.ac

QOJ

Time Limit: 3 s Memory Limit: 2048 MB Total points: 100

#15618. Minimizing Wildlife Damage

统计

你所耕种的农田由若干块从西向东排列的田地组成。目前,每块田地中都有一定数量的小麦;不同田地间的小麦数量可能不同。所有小麦将在若干天后成熟。

你面临的一个大问题是,每天晚上都有一头饥饿的野猪从西边过来。如果所有田地里都没有小麦了,野猪就会折返。否则,野猪会前往仍然有小麦的最西侧田地,并吃掉那里的一单位小麦。随后,野猪会继续向东移动到相邻的田地并吃掉一单位小麦,直到它遇到一块没有小麦的田地,或者在最东侧的田地吃完小麦,此时它会回家。

为了减轻损失,你计划在今天选择一些田地(可能不选),并移除这些田地里的所有小麦,以便野猪在随后的日子里回来时,吃掉的小麦总量尽可能少。在此之后,野猪仍会每天晚上过来,但你无法再采取任何措施来减轻损失。

给定一个或多个候选收获日。对于每个候选收获日,请确定在该日剩余小麦的最大可能总量,前提是你今天已经最优地选择了要移除小麦的田地。最优的选择方案可能随候选收获日而变化。

输入格式

输入包含单个测试用例,格式如下:

$n$ $m$ $a_1 \dots a_n$ $d_1$ $\vdots$ $d_m$

整数 $n$ 是田地的数量($2 \le n \le 2 \times 10^5$)。田地从西向东编号为 1 到 $n$。整数 $m$ 是候选收获日的天数($1 \le m \le 2 \times 10^5$)。对于每个 $i = 1, \dots, n$,整数 $a_i$ 是第 $i$ 块田地中小麦的数量($0 \le a_i \le 10^{12}$)。对于每个 $j = 1, \dots, m$,整数 $d_j$ 是距离第 $j$ 个候选收获日的天数($1 \le d_j \le 2 \times 10^{17}$),即野猪在收获日之前会来 $d_j$ 次。

输出格式

输出 $m$ 行。第 $j$ 行应包含一个整数,表示在第 $j$ 个候选收获日剩余小麦的最大可能总量。

样例

输入 1

3 4
3 1 4
1
2
3
7

输出 1

6
5
4
0

说明 1

对于样例输入 1,如果你不移除任何小麦,田地中小麦数量的变化如下: $(3, 1, 4) \to (2, 0, 3) \to (1, 0, 3) \to (0, 0, 3) \to (0, 0, 2) \to (0, 0, 1) \to (0, 0, 0)$

相反,如果你移除第 2 块田地的小麦,数量变化如下: $(3, 0, 4) \to (2, 0, 4) \to (1, 0, 4) \to (0, 0, 4) \to (0, 0, 3) \to (0, 0, 2) \to (0, 0, 1) \to (0, 0, 0)$

这种选择对于所有给定的候选收获日都是最优的。

输入 2

6 3
300 200 100 100 200 300
10
50
340

输出 2

1140
1000
560

说明 2

对于样例输入 2,最优选择如下:

  • 对于第一个候选收获日,不移除任何小麦是最优的。剩余数量为 $(290, 190, 90, 90, 190, 290)$。
  • 对于第二个候选收获日,移除第 3 块田地的小麦是最优的。剩余数量为 $(250, 150, 0, 100, 200, 300)$。
  • 对于第三个候选收获日,移除第 2 块和第 4 块田地的小麦是最优的。剩余数量为 $(0, 0, 60, 0, 200, 300)$。
problem_15618_1.png

图 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.