#2673. 徐老师的极差序列

徐老师的极差序列

题目描述

徐老师认为一个序列的极差能够代表这个序列数据的离散程度

极差是指这个序列中最大值减最小值的结果(如果序列只有一个元素,则极差为 00)

现在徐老师有一个包含 nn 个数字的序列 a1ana_1 \sim a_n

他希望将这 nn 个数字的序列切割成 xx 段,每段至少包含 11 个数字,使得这 xx 段序列的极差之和最小

但是这个问题过于简单了,所以徐老师决定强化一下问题,他结合了最近学习的 在线 概念,提出了动态询问

徐老师会在给定序列后,依次给出 mm 次操作,操作格式如下:

  • 0 x 表示将 ax(1<x<n)a_x(1 < x < n) 修改为 ax1+ax+1axa_{x - 1} + a_{x + 1} - a_{x},即进行 ax=ax1+ax+1axa_x = a_{x - 1} + a_{x + 1} - a_{x} 的赋值
  • 1 x 表示提出一次询问,询问将当前这个序列切割成 x(1xn)x(1 \leq x \leq n) 段(每段至少包含 11 个数字)后,这 xx 段序列的极差之和最小是多少

现在徐老师想请你来挑战一下这道题目

输入格式

输入第一行包含两个整数 n,mn,m,表示序列长度和操作次数。

输入第二行包含 nn 个整数,表示序列 a1ana_1 \sim a_n

接下来 mm 行,每行包含两个整数表示一次操作,操作格式如题所述

输出格式

对于每次询问,输出一个整数表示答案

数据范围

对于 20%20\% 的数据保证:1n,m1001 \leq n,m \le 100

对于 40%40\% 的数据保证:1n,m10001 \leq n,m \le 1000

另有 10%10\% 的数据保证:ai=1a_i = 1

对于 100%100\% 的数据保证: 1n,m105,1ai1091\leq n,m \leq 10^5, 1 \leq a_i \leq 10^9

特别的,对于所有 i[1,n1]i \in [1, n - 1],有 ai+1aia_{i+1} \leq a_i

样例输入1

5 3
30 20 18 13 2
1 2
0 3
1 3

样例输出1

17
7

样例解释1

对于第一次询问,原序列为 30,20,18,13,230,20,18,13,2,切割成 [30,20,18,13][30,20,18,13][2][2] 可以得到最小的极差之和 (3013)+(22)=17(30-13) + (2-2) = 17

对于第一次询问,原序列为 30,20,15,13,230,20,15,13,2,切割成 [30],[20,15,13][30],[20,15,13][2][2] 可以得到最小的极差之和 (3030)+(2013)+(22)=7(30-30) + (20-13) + (2-2) = 7