T823224 入场安排(admit)

题目描述

活动场地有 $G$ 个位置,编号为 $1$ 到 $G$,最初全部空闲。每个位置最多安排一名参与者,安排后就一直被该参与者占用,不会再次空闲。 有 $P$ 名参与者按照给定顺序到达。第 $i$ 名参与者只能被安排到编号不超过 $g_i$ 的空闲位置,也就是 $1,2,\ldots,g_i$ 中的某一个位置。 一旦某名参与者无法被安排,活动入口就立即关闭,他和所有尚未到达的参与者都不能再入场。不能跳过这名参与者,也不能改变到达顺序。即使后面的参与者原本还能找到空闲位置,也不能继续安排。 你可以为每名参与者选择符合要求的位置。请问最多能让多少名参与者入场? 本题有多组测试数据,每组开始时所有位置都重新变为空闲。

输入格式

第一行包含一个整数 $T$,表示测试数据组数。 对于每组测试数据: - 第一行包含一个整数 $G$。 - 第二行包含一个整数 $P$。 - 接下来 $P$ 行,每行包含一个整数 $g_i$,按参与者的到达顺序给出其可使用位置的编号上限。

输出格式

对于每组测试数据,输出一行一个整数,表示最多能入场的参与者人数。

说明/提示

### 样例解释 可以把第一名参与者安排到位置 $4$,第二名安排到位置 $1$。第三名只能使用位置 $1$,但这个位置已经被占用,因此入口关闭,共有 $2$ 人入场。 第二名和第三名都只能使用位置 $1$,不能同时入场,所以不可能让前三名参与者全部入场。 ## 样例 2 见 `考生目录/admit/admit2.in` 与 `考生目录/admit/admit2.ans`。该样例满足测试点 $1\sim8$ 的约束。 ## 样例 3 见 `考生目录/admit/admit3.in` 与 `考生目录/admit/admit3.ans`。该样例满足测试点 $9\sim20$ 的约束。 ## 样例 4 见 `考生目录/admit/admit4.in` 与 `考生目录/admit/admit4.ans`。该样例满足测试点 $9\sim20$ 的约束。 ## 样例 5 见 `考生目录/admit/admit5.in` 与 `考生目录/admit/admit5.ans`。该样例满足测试点 $9\sim20$ 的约束。 ## 数据范围 对于所有数据,保证: - $1\le T\le10$; - 每组数据中,$1\le G,P\le10^5$,$1\le g_i\le G$; - 同一输入文件中,所有组的 $G$ 之和、$P$ 之和分别不超过 $2\times10^5$; - 所有输入均为整数。 | 测试点编号 | 附加限制(每组均满足) | | ---------- | ---------------------- | | $1\sim8$ | $G,P\le2000$ | | $9\sim20$ | 无 |