#12779. 链式倒水模拟(Chained Water Pouring)
链式倒水模拟(Chained Water Pouring)
题目名称:链式倒水模拟(Chained Water Pouring)
题目描述
有 个水桶排成一列,编号为 。每个桶都有自己的最大容量** ** 和当前初始水量 。
查理的操作规则如下:
- 从第 1 个桶开始,将其中的水倒入第 2 个桶,直到第 1 个桶变 空 或者第 2 个桶变 满 。
- 接着,将第 2 个桶现有的水(包括刚才从 1 号桶倒进来的)倒入第 3 个桶,直到第 2 个桶变 空 或者第 3 个桶变 满 。
- 依此类推,直到操作完第 个桶倒入第 个桶为止。
请输出操作完成后,每个水桶最终的水量。
输入格式
- 第一行包含一个整数 ,表示水桶的数量。
- 第二行包含 个整数 ** ,表示每个桶的最大容量。
- 第三行包含** ** 个整数** ** ,表示每个桶的初始水量。
输出格式
- 输出一行** ** 个整数,表示最终每个桶的水量,中间用空格隔开。
数据范围
样例输入
Plaintext
5
10 20 30 40 50
5 10 15 20 25
样例输出
Plaintext
0 0 10 15 50
样例解释:
- 1号倒向2号:2号余量10,1号有5,全部倒入。1号剩0,2号变15。
- 2号倒向3号:3号余量15,2号有15,全部倒入。2号剩0,3号变30。
- 3号倒向4号:4号余量20,3号有30,只能倒进20。3号剩10,4号变40。
- 4号倒向5号:5号余量25,4号有40,只能倒进25。4号剩15,5号变50。
- 注意:由于4号原本有水,且3号倒过来后变满,再倒向5号,最终结果需严格按模拟顺序计算。 *