#1291. 巧克力
巧克力
题目描述:
在一个幼儿园里,老师 Tom 要给小朋友们分发巧克力棒作为奖励!Tom 一共有 N 个小朋友,每个小朋友都有一定的初始身高,他准备了 M 个巧克力棒,每个巧克力棒的长度也各不相同(1≤N,M≤2×10⁵)。 Tom 计划让小朋友们按照给定的顺序排好队,然后逐一给小朋友们分发巧克力棒。在给小朋友们分发一根巧克力棒时,他会把这个巧克力棒竖直放置,使最初巧克力棒的底部刚刚触及地面。然后,小朋友们会按照顺序一个接一个地排好队,走到这根巧克力棒前。每一个小朋友都会吃掉自己身高的部分(因为他们够不到更高的地方)。即使小朋友吃掉了巧克力棒的底部,巧克力棒也会保持在最初放置的位置,而不会降到地面。如果巧克力棒的底部已经超过了小朋友的身高,那么小朋友有可能在轮到自己的时候什么都吃不到。每一个小朋友都吃完后,小朋友的身高会按照他们吃掉了多少个巧克力棒的长度单位而增长。之后,Tom 会放置下一根巧克力棒,小朋友们会再次重复这个过程(1 号小朋友会再次第一个开始吃下一根巧克力棒)。
输入格式:
第一行包含 N 和 M。 接下来一行包含 N 个小朋友的初始高度,每个小朋友的高度范围为 [1, 10⁹] 。 下一行包含 M 个巧克力棒的长度,每个长度的范围为 [1, 10⁹] 。
输出格式:
这 N 个小朋友的最终高度。
样例:
3 2
3 2 5
6 1
7
2
7
提示
1<=N,M<=10^5 说明:第一根巧克力棒有 6 个单位长。 第一个小朋友吃掉了第一根巧克力棒长度 3 以下的部分后,第一根巧克力棒的剩余部分为 [3, 6]。 第二个小朋友不够高,吃不到第一根巧克力棒的剩余部分。 第三个小朋友又吃了 2 个单位的第一根巧克力棒。第一根巧克力棒的剩余部分 [5, 6] 还没有被吃掉。 接下来,每一个小朋友都按照自己吃掉的数量增长,因此小朋友的高度变为 [3+3, 2+0, 5+2] = [6, 2, 7]。 第二根巧克力棒是 1 单位长,而第一个小朋友就把它吃光了。