中位数
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld

题目描述

某天cbyyx突发奇想给lyt出了一道题:给定序列ab,保证|a|+|b|为奇数且小于1e6,给定q组询问,每次将a序列其中一个数修改或将b序列其中一个数修改,问每次操作后两序列合并后的中位数是多少,lyt觉得这个问题太简单并把它秒了,但lyt觉得这个题对新生来说有点困难,于是他简化问题如下:给定两个正整数nm,再给定长度为n的正整数序列a, 保证n为奇数。接下来m行,每行两个正整数p, x。表示把a[p]修改为x。对于每次操作输出修改后的中位数。

输入描述:

第一行输入两个正整数nm

第二行给定n个正整数表示序列a_{1}~

接下来m行每行给定两个数px,表示将a[p]修改为x

1<=n<=1e6,1<=m<=1e5

1<=x<=1e6

输出描述:

对于每次操作输出每次操作后序列的中位数的值。

示例1

输入

复制
7 3
1 2 3 4 5 6 7
2 3
4 4
7 1

输出

复制
4
4
3