1499:积木-5

时间限制: 2 S | 内存限制: 65536 KB
Accept: 0 | Submit: 0
[提交] [状态] [讨论版]
描述

给你 n 堆积木,第 i 堆积木有 a[i] 个,现在你需要处理以下两种操作:
1 X Y :给第X堆的积木添加 Y 个,即a[X] += Y。
2 L R :求出区间[L,R]内积木的最大值。

输入

第一行是一个正整数 n 代表积木的堆数。(1 <= n <= 100000)

然后是 n 个正整数代表每堆积木的个数。(1<= a[i] <= 10000)

第三行是一个正整数 m 代表操作的次数。(1 <= m <= 100000)

接下来 m 行,每行代表一个操作,保证所有的 1 <= L <= R <= n,1 <= X <= n,1 <= Y <= 10000

对于33%的数据,n,m<=100。
对于66%的数据,n,m<=10000。
对于100%的数据,n,m<=100000。

输出

针对每个“2 L R”操作,输出区间[L,R]内积木的最大值,然后换行。

样例输入

5
1 2 3 4 5
3
2 2 3
1 2 2
2 2 3

样例输出
3
4
HINT

对于样例:
第一步操作查询2-3堆中最多的积木数。
第二步操作给第2堆积木加了两块积木。
第三步操作查询2-3堆中最多的积木数。
冲就完事了!

来源
Hello winter vacation Round#7