#1002. G - 嘴巴(Mouth)

G - 嘴巴(Mouth)

题目描述

有 NN 个人从左到右站在位置 1,2,…,N1,2,\ldots,N,每个人都张着嘴。第 ii 个人的饥饿度为 AiA_i。

你有无限多颗糖。你可以恰好进行一次以下过程:

  1. 选择一个位置 xx,站到该位置;
  2. 将以下操作重复任意次(也可以一次都不执行):
    • 若当前位于位置 yy,移动到 y−1y-1、yy 或 y+1y+1 中的一个位置;移动后的位置必须仍在 11 到 NN 之间;
    • 向当前位置的人的嘴里投入一颗糖。

设第 ii 个人最终得到的糖果数为 BiB_i。你的目标是最小化

∑i=1N∣Ai−Bi∣.\sum_{i=1}^{N}|A_i-B_i|.

接下来有 QQ 次更新。第 jj 次更新给出 i,vi,v,将 AiA_i 永久修改为 vv。每次更新后,求上述最小值。

限制条件

  • 1≤N≤1051\le N\le 10^5
  • 1≤Q≤1051\le Q\le 10^5
  • 0≤Ai≤1090\le A_i\le 10^9
  • 每次更新中 1≤i≤N1\le i\le N,0≤v≤1090\le v\le 10^9
  • 所有输入均为整数。

部分分

  • 对满足 Q≤10Q\le 10 的数据求解正确,可获得 22 分。

输入

N Q
A_1 A_2 ... A_N
i_1 v_1
i_2 v_2
...
i_Q v_Q

输出

输出 QQ 行。第 jj 行输出第 jj 次更新后的答案。

样例输入 1

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

样例输出 1

1
2
1

第一次更新后 A=(1,0,0,2)A=(1,0,0,2)。例如,可以从位置 33 开始,移动到位置 44 并连续向第 44 个人投两颗糖,得到 B=(0,0,0,2)B=(0,0,0,2),此时代价为 11。

样例输入 2

10 9
1 0 0 0 0 0 4 0 0 2
3 2
7 0
1 9
6 4
1 1
10 0
1 0
6 0
5 7

样例输出 2

5
3
3
5
5
3
2
0
1