题目描述
译自 ROI 2024 Day2 T3. Гонка дронов
因诺波利斯市正在举办无人机比赛。
共有 n 架无人机参赛,第 i 架无人机飞行一单位距离需要 ti 秒。比赛在一条直线上进行,设有 m 个编号从 1 到 m 的门,第 i 个门位于起跑线起点的 si 距离处。
比赛将由前 k 架无人机参加,编号从 1 到 k。赛前不久,裁判会宣布具体的 k 值,因此你需要为所有从 1 到 n 的 k 值分析比赛情况。
比赛规则如下:
无人机从起点 0 开始飞行。每架无人机有一个「存档点」——即最后一个它执行了「位置保存」的门。初始时,所有无人机的存档点都是起点 0。无人机会从各自的存档点开始飞行,并继续前进,直到一个或多个无人机到达门的位置(可能不同的无人机到达不同的门)。此时,在所有到达门的无人机中,编号最小的无人机将其位置保存,即更新其存档点为当前位置。其他无人机则瞬间传送回它们的存档点。之后比赛继续以同样的方式进行。
一旦无人机的位置在最后一个门 m 保存后,它就完成了赛程。尚未完成赛程的无人机会像往常一样传送回其存档点,比赛继续进行。当所有无人机都完成赛程后,比赛结束。
传送是一个非常耗能的过程。为了准备比赛,需要知道在比赛结束前,所有无人机总共需要进行多少次传送。记 ck 为当有前 k 架无人机参加比赛时,所有无人机的总传送次数。求 c1,c2,…,cn 的值。
输入格式
第一行给出两个整数 $n,m\ (2 \le n \le 1.5\cdot 10^5,1 \le m \le 1.5\cdot 10^5)$,分别表示无人机的数量和门的数量。
第二行给出 n 个正整数 t1,t2,…,tn (1≤ti≤109),其中 ti 表示第 i 架无人机飞行一单位距离所需的秒数。
第三行给出 m 个正整数 $ s_1, s_2, \ldots , s_m\ (1 \le s_1 < s_2 < \ldots < s_m \le 1.5\cdot 10^5)$,其中 si 表示第 i 个门的位置。
输出格式
输出 n 个整数 c1,c2,…,cn,每个整数代表当有前 k 架无人机参加时,所有无人机的总传送次数。
3 3
1 2 3
1 3 6
0
4
11
考虑当 k=1 时,无需任何传送,因为只有一架无人机参加。
当 k=2 时,无人机按各自速度到达门的次序和位置保存操作导致传送发生。

当 k=3 时,比赛过程如下图所示。图中展示了无人机到达门口并进行传送的时刻。

3 3
3 2 1
1 3 6
0
5
13
2 5
2 1
1 3 4 6 7
0
6
数据范围与提示
详细子任务附加限制及分值如下表所示。其中子任务 0 是样例。
子任务 |
分值 |
n 的限制 |
m 的限制 |
ti,si 的限制 |
附加限制 |
子任务依赖 |
1 |
5 |
n=2 |
m≤50 |
ti,si≤105 |
|
|
2 |
7 |
n≤50 |
0,1 |
3 |
13 |
n≤1000 |
m≤5 |
0 |
4 |
9 |
n≤105 |
m≤105 |
si+1−si=s1 (1≤i<m) |
|
5 |
8 |
n≤105 |
所有 ti 相同 |
6 |
10 |
n≤100 |
|
0,1,2 |
7 |
5 |
n≤105 |
ti≤2, si≤105 |
|
8 |
7 |
m=2 |
ti,si≤105 |
9 |
6 |
n≤104 |
m≤105 |
0,1,2,3,6 |
10 |
6 |
n≤5⋅104 |
0,1,2,3,6,9 |
11 |
8 |
n≤105 |
0,1,2,6,8,10 |
12 |
8 |
|
0,1−11 |
13 |
8 |
无附加限制 |
0,1−12 |