CF371D.Vessels

传统题 时间 2000 ms 内存 256 MiB 9 尝试 3 已通过 1 标签

Vessels

题目描述

有一个由 nn 个容器自上而下排成一列的系统,如下图所示。假设这些容器从上到下编号为 11nn,第 ii 个容器的容量为 aia_{i} 升。

最初,所有容器都是空的。有些容器会被倒入水。当第 ii 个容器中的水溢出时,多余的水会流入第 (i+1)(i+1) 个容器。如果第 nn 个容器中的水溢出,多余的水就会流到地板上。

你的任务是模拟往容器中倒水的过程。你需要支持两种类型的查询:

  1. 向第 pip_{i} 个容器中倒入 xix_{i} 升水;
  2. 输出第 kik_{i} 个容器中当前有多少升水。

在响应第二种查询时,可以认为到目前为止所有倒入的水都已经在容器间充分溢流完毕。

输入格式

第一行包含一个整数 nn,表示容器的数量(1n2×1051\leq n\leq 2\times 10^5)。 第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \ldots, a_n,表示每个容器的容量(1ai1091\leq a_i\leq 10^9)。容器的容量不一定从上到下单调递增(见样例二)。 第三行包含一个整数 mm,表示查询的数量(1m2×1051\leq m\leq 2\times 10^5)。 接下来的 mm 行,每行描述一个查询。第一类查询格式为“1 pi xi1\ p_i\ x_i”,第二类查询格式为“2 ki2\ k_i”(1pin1\leq p_i\leq n1xi1091\leq x_i\leq 10^91kin1\leq k_i\leq n)。

输出格式

对于每个第二类查询,输出对应容器中当前的水量,每行一个整数。

说明/提示

由 ChatGPT 5 翻译

样例

2
5 10
6
1 1 4
2 1
1 2 5
1 1 4
2 1
2 2
4
5
8
3
5 10 8
6
1 1 12
2 2
1 1 6
1 3 2
2 2
2 3
7
10
5

在线编程 IDE

建议全屏模式获得最佳体验