SP10424 TOPOLAND - To Poland

题目描述

小罗素和弗雷德里克森先生计划驾驶他们的气球房子踏上一段新旅程。在帮助了居住在南美洲的小鸟凯文之后,他们决定前往波兰的华沙,那里可能会发现新的鸟类标本。 这次旅程分为多个阶段。由于气压和风速的变化,每个阶段都要求房子配备一定数量的气球。作为一名优秀的童子军,罗素已经估算出穿越每个阶段所需的最少气球数量。然而,由于大气条件时常变化,罗素遇到困难,不确定房子需携带多少气球才能顺利完成连续的旅程部分,并避免过多地吹起气球。 为协助罗素,你需要编写一个程序来应对以下几种查询: - 罗素增加或减少房子里的气球数量 - 某一阶段所需的最少气球数量发生了变化 - 为了确保房子能顺利通过一段连续的旅程,需要增减多少气球才能满足每一阶段的最低要求?

输入格式

第一行输入一个整数 **T**,代表测试数据组数。 每组测试数据的开始包括两个整数:**N** 和 **M**,其中 **N** 代表旅程的阶段数量,**M** 代表房子中最初拥有的气球数量。接下来的 **N** 行,每行包含一个整数 **N $ _{i} $**,表示通过第 **i** 阶段所需的最少气球数量。 然后读取一个整数 **Q**,表示查询的数量。接下来的 **Q** 行中,每行提供一条查询,格式如下: - **"A K"**:这里 **A** 是字符 'A',**K** 表示增加(或减少)气球数量的变化值。 - **"B J K"**:这里 **B** 是字符 'B',**J** 是阶段编号(从 0 开始),**K** 是更改后的阶段所需的最少气球数量。 - **"C I J"**:这里 **C** 是字符 'C',表示查询阶段的范围 **\[I, J\]**。对于这类查询,输出当前房子里气球数量与通过 **I** 到 **J** 阶段所需的最少气球数量之间的差值。注意,这种查询不会改变房子中的气球数量。

输出格式

对于每组测试数据,首先输出一行 “_Testcase X:_”,其中 **X** 是测试数据编号(从 0 开始)。对于每条 **"C I J"** 查询,单独输出一行,表示当前气球数量与所需最少气球数量之间的差值。 每组测试数据的结尾输出一个空行。 **本翻译由 AI 自动生成**