luogu#P10922. Happybob's Numbers (UBC001B)

Happybob's Numbers (UBC001B)

题目描述

happybob 在地上有 nn 个数,第 ii 个记为 aia_i。happybob 正在研究如何将这些数全部删除。在他开始进行所有操作以前,他有一次按任意顺序摆放这些数的机会。他接下来要按照如下方式进行删数:

  • happybob 有一个删数下标 hh(初始时 h=1h=1),他会设立一个新变量 HH,其值为 aha_h ,然后对于每一个满足 hi<kh\le i<k 的正整数 ii 都执行 aiai+1a_i\gets a_{i+1}(这里 kk 是当前地上剩余的数的个数)并删除数 aka_k,在这之后他会把 hh 赋值为 HH

  • 如果在任何一次操作过后,hh 严格大于当前地上剩余的数的个数,那么他将不能再删除任何数。

当然以他的这种删数方式不一定可以删完所有数,所以他现在想问你:他最多能删除多少个数?

输入格式

第一行,一个正整数 tt,表示测试数据组数。

对于每组数据:

第一行,一个正整数 nn,表示 aa 的大小;

第二行,nn 个正整数表示 aa 中的元素。

输出格式

tt 行,每行一个正整数,表示该组测试数据对应的答案。

2
3
1 2 3
4
114 514 1919 810
3
1

提示

样例解释

对于第一个数据点,happybob 可以把 aa 数组排序为 [2,3,1][2, 3, 1]。以下是删数过程:

操作次数 hh(操作完成后) 地上的数(操作完成后)
初始 11 [2,3,1][2, 3, 1]
11 22 [3,1][3, 1]
22 11 [3][3]
33 [][]

地上没有数了,也就是一共删除了 33 个数。

对于第二个数据点,可以证明,无论怎么排序 aa,都只能删除一个数。

数据范围

本题有多组测试数据。

对于 100%100\% 的数据,保证 1t,n,n5×1051 \le t,n,\sum n\le 5 \times 10^51ai1091\le a_i\le 10^9。其中 n\sum n 表示所有测试数据中 nn 的和。