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$.