动态序列维护与查询
时间限制:1秒 内存限制:256M
【题目描述】
对于给定初始序列 \(a[1],a[2]..a[n]\),变成实现下列对该序列的维护与查询:
1 \(k\ v\):在序列的第 \(k\) 个元素之后插入一个元素 \(v\)(如果 \(k==0\) 表示在第一个元素之前插入)。
2 \(k\):删除序列的第 \(k\) 个元素。
3 \(k\ v\):把序列的第 \(k\) 个元素增加 \(v\)。
4 \(i\ j\):查询区间:\(a[i],a[i+1]…,a[j]\) 范围内的最小元素的值。
【输入格式】
第 1 行包含两个整数 \(n,m\),其中 \(n\) 表示最初序列的元素个数,\(m\) 表示对序列维护和查询操作数目。
第 2 行包含 \(n\) 个整数,表示序列 \(A\) 中的元素 \(a[1]..a[n](|a[i]|<=10^9)\)。
接下来的 \(m\) 行,每行是一条操作命令,格式见题目描述,所有操作均合法,其中\((0≤|v|≤10^9)\)。
【输出格式】
输出查询的结果。
【输入输出样例】
Input
10 11
3 2 9 2 1 10 6 5 8 7
4 3 10
1 7 0
1 0 -1
2 7
3 2 -5
3 1 -3
1 8 -4
2 1
2 10
1 10 -1
4 1 11
Output
1
-4
【数据限制】
对于 \(100\%\) 的数据,\(n,m≤200000\)
【来源】
Mr.he**