CF371D Vessels
题目描述
有一个由 $n$ 个容器自上而下排成一列的系统,如下图所示。假设这些容器从上到下编号为 $1$ 到 $n$,第 $i$ 个容器的容量为 $a_{i}$ 升。

最初,所有容器都是空的。有些容器会被倒入水。当第 $i$ 个容器中的水溢出时,多余的水会流入第 $(i+1)$ 个容器。如果第 $n$ 个容器中的水溢出,多余的水就会流到地板上。
你的任务是模拟往容器中倒水的过程。你需要支持两种类型的查询:
1. 向第 $p_{i}$ 个容器中倒入 $x_{i}$ 升水;
2. 输出第 $k_{i}$ 个容器中当前有多少升水。
在响应第二种查询时,可以认为到目前为止所有倒入的水都已经在容器间充分溢流完毕。
输入格式
第一行包含一个整数 $n$,表示容器的数量($1\leq n\leq 2\times 10^5$)。
第二行包含 $n$ 个整数 $a_1, a_2, \ldots, a_n$,表示每个容器的容量($1\leq a_i\leq 10^9$)。容器的容量不一定从上到下单调递增(见样例二)。
第三行包含一个整数 $m$,表示查询的数量($1\leq m\leq 2\times 10^5$)。
接下来的 $m$ 行,每行描述一个查询。第一类查询格式为“$1\ p_i\ x_i$”,第二类查询格式为“$2\ k_i$”($1\leq p_i\leq n$,$1\leq x_i\leq 10^9$,$1\leq k_i\leq n$)。
输出格式
对于每个第二类查询,输出对应容器中当前的水量,每行一个整数。
说明/提示
由 ChatGPT 5 翻译