小H的序列问题
时间限制:0.5秒 内存限制:256M
【题目描述】
最近小H在学线段树,但是今天他遇到了一道看似简单的问题:对整数序列 \(a[1]..a[n](|a[i]≤10^9)\)进行 \(m\) 次修改,每次修改都会把序列中的某个元素修改成另一个值,即对于指令:\(i\ x\),表示把 \(a[i]\) 修改成 \(x(|x|≤10^9)\))。要求编程输出每次修改后序列中长度为 \(k\) 的最大连续序列。
【输入格式】
第一行有三个整数: \(n,k,m\)。
第二行包含 \(n\) 个整数,表示 \(a[1],a[2],…,a[n]\)。
接下来 \(m\) 行,每行两个整数 \(i\) 和 \(x\),表示本次修改的位置和修改的值。
【输出格式】
对于每次修改操作,输出一行一个整数,表示当前序列中长度为 \(k\) 的最大连续子序列。
【输入输出样例】
Input
10 3 8
3 -2 2 4 -1 3 -4 1 -5 2
2 0
4 -3
7 5
5 1
6 -6
9 1
7 0
3 7
Output
6
5
9
9
5
7
5
10
【数据限制】
对于 \(40\%\) 的数据,\(1≤n,m≤10^4\)
对于 \(100\%\) 的数据,\(1≤n,m≤2×10^5\),\(1≤k≤N\)
【来源】
Mr.he