#P4759. Circular RMQ

Circular RMQ

题目描述

给定一个环形数列 a0,a1,,an1a_0,a_1,\dots,a_{n-1}。现在有 22 种操作:

  • inc(lf,rg,v)\operatorname{inc}(lf,rg,v):将区间 [lf,rg][lf,rg] 中的每个数增加 vv
  • rmq(lf,rg)\operatorname{rmq}(lf,rg):求出区间 [lf,rg][lf,rg] 中的最小值。

因为数列是环形的,所以当 n=5n=5lf=3lf=3rg=1rg=1 时,表示的区间下标为 3,4,0,13,4,0,1

输入格式

第一行有一个整数 nn1n2×1051\le n\le 2\times 10^5

第二行为数列的初始状态 a0,a1,,an1a_0,a_1,\dots,a_{n-1}ai106|a_i|\le 10^6

第三行有一个整数 mm,表示操作次数,0m2×1050\le m\le 2\times 10^5

接下来 mm 行,每行为一个操作。如果该行有两个整数 lf, rglf,\ rg,表示 rmq\operatorname{rmq} 操作,如果该行有三个整数 lf, rg, vlf,\ rg,\ v,表示 inc\operatorname{inc} 操作。

输出格式

对于每个 rmq\operatorname{rmq} 操作输出一行答案。

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