Coding is the closest thing we have to superpower !

3661 : 线段树-练习-区间修改区间最小
描述

给定一个长度为n的数组a_0, a_1, a_2, ..., a_{n-1}

有m个操作,形如以下两种:

1、inc(lf, rg, v)表示将区间[lf, rg]里面的元素都增加v。

2、rmq(lf, rg)表示查询区间[lf, rg]里面元素的最小值。

输入

第一行给出两个整数n(1 \le n \le 10^5)

接下来一行给出n个整数a_0, a_1, a_2, ..., a_{n-1}( |a_i| \le 10^6)

然后输入一个整数m(1 \le m \le 10^5)

接下来m行,如果输入2, lf, rg(0 \le lf \le rg \lt n),表示rmq操作;如果输入1, lf, rg, v(0 \le lf \le rg \lt n, |v|\le 10^6),则表示inc操作。

输出

对于每一个rmq操作,输出区间最小值。

样例

输入

4
1 2 3 4
4
2 0 3
1 0 3 -1
2 0 1
2 1 2

输出

1
0
1
标签
语言:
主题: