编程题
### 问题描述 在蓝桥市的一条长街上,有 $N$ 个人(编号 $1$ 到 $N$)分布在街上。为了方便,我们将他们视为线上的点,对于每个有效的 $i$ ,第 $i$ 个人的位置是 $X_i$。 不幸的是,这些人中有一个人被病毒感染,但我们不知道是哪一个。每当他们之间的距离最多为 $2$ 时,病毒就会从感染者传播给未感染的人。如果我们等待足够长的时间,一组特定的人(取决于最初被感染的人)将会被感染;我们将这组人的大小称为最终的感染人数。 你的任务是找到最终感染人数的最小值和最大值,即在最佳和最坏的情况下这个数字。 ### 输入格式 输入的第一行包含一个整数 $T$,表示测试用例的数量。接下来是 $T$ 个测试用例的描述。 每个测试用例的第一行包含一个整数 $N$。 第二行包含 $N$ 个由空格分隔的整数,即 $X_1$ ,$X_2$,……,$X_N$。 数据范围保证:$1 \leq T \leq 2000$,$2 \leq N \leq 8$,$0 \leq X_1 < X_2 < X_n \leq 10$。 ### 输出格式 对于每个测试用例,打印一行包含两个由空格分隔的整数,即可能的最小和最大的最终感染者数量。 ### 样例输入 ```text 3 2 3 6 3 1 3 5 5 1 2 5 6 7 ``` ### 样例输出 ```text 1 1 3 3 2 3 ``` ### 样例解释 示例 1:两个人之间的距离为 3,所以病毒无法传播,最终只有一个人被感染。 示例 2:每两个相邻的人之间的距离为 2,所以他们最终都会被感染。 示例 3: - 在最佳的情况之一中,最初感染的人在位置 1,病毒也会感染处于位置 2 的人。 - 在最糟糕的情况之一中,最初感染的人在位置 5,病毒也会感染处于位置 6 和 7 的人。
查看答案
赣ICP备20007335号-2