#12779. 链式倒水模拟(Chained Water Pouring)

链式倒水模拟(Chained Water Pouring)

题目名称:链式倒水模拟(Chained Water Pouring)

题目描述

nn个水桶排成一列,编号为 1,2,,n1, 2, \dots, n 。每个桶都有自己的最大容量** CiC_i** 和当前初始水量WiW_i

查理的操作规则如下:

  1. 从第 1 个桶开始,将其中的水倒入第 2 个桶,直到第 1 个桶变 空 或者第 2 个桶变​ 满 ​。
  2. 接着,将第 2 个桶现有的水(包括刚才从 1 号桶倒进来的)倒入第 3 个桶,直到第 2 个桶变 空 或者第 3 个桶变​ 满 ​。
  3. 依此类推,直到操作完第 n1n - 1 个桶倒入第 nn 个桶为止。

请输出操作完成后,每个水桶最终的水量。

输入格式

  • 第一行包含一个整数 nn ,表示水桶的数量。
  • 第二行包含 nn 个整数 C1,C2,dots,CnC_1, C_2, dots, C_n** ,表示每个桶的最大容量。
  • 第三行包含** nn** 个整数** W1,W2,dots,WnW_1, W_2, dots, W_n** ,表示每个桶的初始水量。

输出格式

  • 输出一行** nn** 个整数,表示最终每个桶的水量,中间用空格隔开。

数据范围

1n1051 \le n \le 10 ^ 5 1Ci1091 \le C_i \le 10 ^ 9 0WiCi0 \le W_i \le C_i


样例输入

Plaintext

5
10 20 30 40 50
5 10 15 20 25

样例输出

Plaintext

0 0 10 15 50

样例解释:

  1. 1号倒向2号:2号余量10,1号有5,全部倒入。1号剩0,2号变15。
  2. 2号倒向3号:3号余量15,2号有15,全部倒入。2号剩0,3号变30。
  3. 3号倒向4号:4号余量20,3号有30,只能倒进20。3号剩10,4号变40。
  4. 4号倒向5号:5号余量25,4号有40,只能倒进25。4号剩15,5号变50。
  • 注意:由于4号原本有水,且3号倒过来后变满,再倒向5号,最终结果需严格按模拟顺序计算。 *