CF1809E.Two Tanks
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
There are two water tanks, the first one fits a liters of water, the second one fits b liters of water. The first tank has c ( 0≤c≤a ) liters of water initially, the second tank has d ( 0≤d≤b ) liters of water initially.
You want to perform n operations on them. The i -th operation is specified by a single non-zero integer vi . If vi>0 , then you try to pour vi liters of water from the first tank into the second one. If vi<0 , you try to pour −vi liters of water from the second tank to the first one.
When you try to pour x liters of water from the tank that has y liters currently available to the tank that can fit z more liters of water, the operation only moves min(x,y,z) liters of water.
For all pairs of the initial volumes of water (c,d) such that 0≤c≤a and 0≤d≤b , calculate the volume of water in the first tank after all operations are performed.
输入格式
The first line contains three integers n,a and b ( 1≤n≤104 ; 1≤a,b≤1000 ) — the number of operations and the capacities of the tanks, respectively.
The second line contains n integers v1,v2,…,vn ( −1000≤vi≤1000 ; vi=0 ) — the volume of water you try to pour in each operation.
输出格式
For all pairs of the initial volumes of water (c,d) such that 0≤c≤a and 0≤d≤b , calculate the volume of water in the first tank after all operations are performed.
Print a+1 lines, each line should contain b+1 integers. The j -th value in the i -th line should be equal to the answer for c=i−1 and d=j−1 .
输入输出样例
输入#1
3 4 4 -2 1 2
输出#1
0 0 0 0 0 0 0 0 0 1 0 0 1 1 2 0 1 1 2 3 1 1 2 3 4
输入#2
3 9 5 1 -2 2
输出#2
0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 2 1 2 2 2 2 3 2 3 3 3 3 4 3 4 4 4 4 5 4 5 5 5 5 6 5 6 6 6 6 7 6 7 7 7 7 8 7 7 7 7 8 9
说明/提示
Consider c=3 and d=2 from the first example:
- The first operation tries to move 2 liters of water from the second tank to the first one, the second tank has 2 liters available, the first tank can fit 1 more liter. Thus, min(2,2,1)=1 liter is moved, the first tank now contains 4 liters, the second tank now contains 1 liter.
- The second operation tries to move 1 liter of water from the first tank to the second one. min(1,4,3)=1 liter is moved, the first tank now contains 3 liters, the second tank now contains 2 liter.
- The third operation tries to move 2 liter of water from the first tank to the second one. min(2,3,2)=2 liters are moved, the first tank now contains 1 liter, the second tank now contains 4 liters.
There's 1 liter of water in the first tank at the end. Thus, the third value in the fourth row is 1 .