CF1690G Count the Trains
题目描述
**【题目大意】**
铁轨上有 $n$ 节车厢,每节车厢在各自的引擎驱动下可以达到一个最高速度,记录在一个序列 $\{a_i\}$ 里. 车厢从左到右的编号依次为 $1$ 到 $n$.
现在让这些车厢向左尽可能快地开动,要求靠右的车厢实际速度不能超过靠左的车厢. 这样便会形成若干段速度一致的连续数节车厢,称这样的一段为**一节火车**. 例如序列 $a=[10,13,5,2,6]$ 对应的车厢的实际运行速度为 $[10,10,5,2,2]$,形成了 $3$ 节火车.
在车厢行驶时,依次收到了 $m$ 条形如 $k\ d$ 的信息,表示第 $k$ 节车厢的最高速度因引擎老化而下降了 $d$. 请维护这个过程中火车的总节数,每次收到信息后输出.
输入格式
输入的第一行为测试用例数 $t$. 每个测试用例的第 $1$ 行为空,第 $2$ 行为 $n$ 和 $m$,第 $3$ 行为序列 $\{a_i\}_{i=1}^n$,接下来 $m$ 行每行给出一条信息 $k_i\ d_i$.
输出格式
输出 $t$ 行对应 $t$ 个测试用例,每行用空格分隔 $m$ 个整数,表示收到每条信息后的火车节数.
说明/提示
所有数值均为整数.
$t∈[1,10^4];$
$n,m∈[1,10^5];$
$a_i∈[0,10^9](\forall i∈[1,n]);$
$k_j∈[1,n],\ d_j∈[0,a_{k_j}](\forall j∈[1,m])$.
所有测试用例的 $n$ 的总和及 $m$ 的总和均不超过 $10^5$.