#126. 滚动

滚动

题目描述

有一排从上到下排列的 MM 个方格,编号为 1∼M1 \sim M。

对于每个 1≤i≤M−11 \le i \le M-1,在方格 ii 与 i+1i+1 之间存在一个台阶,其通过条件由一个整数 WiW_i 表示:

若球的重量 ≥Wi\ge W_i,则可以从方格 ii 滚动到方格 i+1i+1 否则球会停在方格 ii

现在有 NN 个球,第 jj 个球的重量为 BjB_j。

每个球独立进行如下过程:

初始位于方格 11 若当前在方格 pp,且 p<Mp < M 且 Bj≥WpB_j \ge W_p,则移动到 p+1p+1 重复该过程,直到无法继续移动

请输出每个球最终停留的方格编号。

输入格式

N M
W_1 W_2 ... W_{M-1}
B_1 B_2 ... B_N

输出格式

输出 NN 行,第 ii 行表示第 ii 个球最终停留的位置。

数据范围与子任务

Subtask 1(20%)N,M≤1000N, M \le 1000 无特殊性质
Subtask 2(30%)N,M≤5×104N, M \le 5 \times 10^4,WiW_i 单调不降
Subtask 3(50%)数据范围

1≤N≤2×1051 \le N \le 2 \times 10^5
2≤M≤2×1052 \le M \le 2 \times 10^5
1≤Wi,Bj≤1091 \le W_i, B_j \le 10^9

3 5
2 5 3 1
4 1 10
2
1
5