Есть две бочки — в первую помещается $$$a$$$ литров воды, во вторую помещается $$$b$$$ литров воды. В первой бочке изначально $$$c$$$ ($$$0 \le c \le a$$$) литров воды, во второй бочке изначально $$$d$$$ ($$$0 \le d \le b$$$) литров воды.
Вы хотите провести $$$n$$$ действий над ними. $$$i$$$-е действие задается одним ненулевым целым числом $$$v_i$$$. Если $$$v_i > 0$$$, то вы пытаетесь налить $$$v_i$$$ литров воды из первой бочки во вторую. Если $$$v_i < 0$$$, то вы пытаетесь налить $$$-v_i$$$ литров воды из второй бочки в первую.
Когда вы пытаетесь налить $$$x$$$ литров воды из бочки, в которой сейчас $$$y$$$ литров воды, в бочку, в которой может поместиться еще $$$z$$$ литров воды, то за действие вы перельете только $$$\min(x, y, z)$$$ литров воды.
Для всех пар начальных объемов воды $$$(c, d)$$$ таких, что $$$0 \le c \le a$$$ и $$$0 \le d \le b$$$, посчитайте объем воды в первой бочке после применения всех действий.
В первой строке записаны три целых числа $$$n, a$$$ и $$$b$$$ ($$$1 \le n \le 10^4$$$; $$$1 \le a, b \le 1000$$$) — количество действий и вместимости бочек, соответственно.
Во второй строке записаны $$$n$$$ целых чисел $$$v_1, v_2, \dots, v_n$$$ ($$$-1000 \le v_i \le 1000$$$; $$$v_i \neq 0$$$) — объем воды, который вы пытаетесь перелить в каждом действии.
Для всех пар начальных объемов воды $$$(c, d)$$$ таких, что $$$0 \le c \le a$$$ и $$$0 \le d \le b$$$, посчитайте объем воды в первой бочке после применения всех действий.
Выведите $$$a + 1$$$ строку, в каждой строке должно быть $$$b + 1$$$ целых чисел. $$$j$$$-е значение в $$$i$$$-й строке должно быть ответом для $$$c = i - 1$$$ и $$$d = j - 1$$$.
3 4 4 -2 1 2
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
3 9 5 1 -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
Рассмотрим $$$c = 3$$$ и $$$d = 2$$$ из первого примера:
В конце в первой бочке $$$1$$$ литр воды. Поэтому третье значение в четвертой строке равно $$$1$$$.
Название |
---|