309994: CF1769C2. Подкрутка II

Memory Limit:0 MB Time Limit:0 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

Подкрутка II

题意翻译

给你一个 $n$ 长不下降序列 $a_1,...,a_n$,现在你可以将其中的一些位置加上 $1$。 请你求出最大的 $x$,使得存在连续一段 $a_l,...,a_r$ ,其中出现过连续 $x$ 种值。 样例解释: - 对于 $1,1,3,4,6,6,6,8,10$,我们将其修改为 $1,1,4,5,6,7,6,8,10$,那么在 $4,5,6,7,6,8$ 这一段中出现了 $4,5,6,7,8$,即 $x = 5$。 Code937 翻译。

题目描述

В этой версии задачи $ n \le 2 \cdot 10^5 $ и $ a_i \le 10^6 $ (а также есть ограничение на сумму $ n $ по наборам входных данных внутри одного теста). Вика за время работы в компании VK уже сделала $ n $ коммитов в системе контроля версий. $ i $ -й коммит был сделан в $ a_i $ -й день работы Вики в компании. В некоторые дни Вика могла сделать несколько коммитов, а в другие — не сделать ни одного. Вику интересуют такие отрезки подряд идущих дней, что в каждый из этих дней у неё есть хотя бы один коммит. Чем длиннее будет самый длинный такой отрезок, тем более продуктивным сотрудником она будет себя ощущать. Недавно Вика нашла способ подкрутить время любого коммита вперёд, но не более чем на сутки. Таким образом, $ i $ -й коммит теперь может быть «сделан» либо в $ a_i $ -й, либо в $ (a_i + 1) $ -й день. Время каждого коммита можно подкрутить независимо от других — в частности, можно как оставить всем коммитам исходное время, так и перенести все коммиты ровно на день вперёд. Найдите длину самого длинного возможного отрезка подряд идущих дней, в каждый из которых у Вики в профиле будет отображаться хотя бы один коммит, после возможной подкрутки времени некоторых коммитов.

输入输出格式

输入格式


Каждый тест состоит из нескольких наборов входных данных. В первой строке находится одно целое число $ t $ ( $ 1 \le t \le 100 $ ) — количество наборов входных данных. Далее следует описание наборов входных данных. Первая строка каждого набора входных данных содержит одно целое число $ n $ ( $ 1 \le n \le 2 \cdot 10^5 $ ) — число коммитов. Вторая строка содержит $ n $ целых чисел $ a_1, a_2, \ldots, a_n $ в неубывающем порядке ( $ 1 \le a_1 \le a_2 \le \ldots \le a_n \le 10^6 $ ) — номера дней, в которые были сделаны коммиты. Гарантируется, что сумма $ n $ по всем наборам входных данных не превосходит $ 2 \cdot 10^5 $ .

输出格式


Для каждого набора входных данных выведите одно целое число — максимальную возможную длину отрезка дней, в каждый из которых у Вики в профиле будет отображаться хотя бы один коммит, после возможной подкрутки времени некоторых коммитов вперёд не более чем на сутки.

输入输出样例

输入样例 #1

3
9
1 1 3 4 6 6 6 8 10
6
1 2 3 4 5 6
5
10 10 10 10 10

输出样例 #1

5
6
2

Input

题意翻译

给你一个 $n$ 长不下降序列 $a_1,...,a_n$,现在你可以将其中的一些位置加上 $1$。 请你求出最大的 $x$,使得存在连续一段 $a_l,...,a_r$ ,其中出现过连续 $x$ 种值。 样例解释: - 对于 $1,1,3,4,6,6,6,8,10$,我们将其修改为 $1,1,4,5,6,7,6,8,10$,那么在 $4,5,6,7,6,8$ 这一段中出现了 $4,5,6,7,8$,即 $x = 5$。 Code937 翻译。

Output

**题目大意**:

给定一个长度为 $ n $ 的非递减序列 $ a_1, ..., a_n $,你可以选择序列中的一些位置并将该位置的值增加 1。需要求出最大的 $ x $,使得存在一个连续的子序列 $ a_l, ..., a_r $,在这个子序列中至少出现连续 $ x $ 个不同的值。

**输入输出数据格式**:

**输入格式**:
- 第一行包含一个整数 $ t $,表示测试用例的数量 ($ 1 \le t \le 100 $)。
- 每个测试用例包含两行:
- 第一行包含一个整数 $ n $,表示序列的长度 ($ 1 \le n \le 2 \cdot 10^5 $)。
- 第二行包含 $ n $ 个整数 $ a_1, ..., a_n $,表示序列中的元素,这些元素是非递减的 ($ 1 \le a_1 \le a_2 \le ... \le a_n \le 10^6 $)。

**输出格式**:
- 对于每个测试用例,输出一行,包含一个整数,表示经过增加操作后,最长的连续子序列中不同元素的最大数量 $ x $。

**输入输出样例**:

**输入样例**:
```
3
9
1 1 3 4 6 6 6 8 10
6
1 2 3 4 5 6
5
10 10 10 10 10
```

**输出样例**:
```
5
6
2
```**题目大意**: 给定一个长度为 $ n $ 的非递减序列 $ a_1, ..., a_n $,你可以选择序列中的一些位置并将该位置的值增加 1。需要求出最大的 $ x $,使得存在一个连续的子序列 $ a_l, ..., a_r $,在这个子序列中至少出现连续 $ x $ 个不同的值。 **输入输出数据格式**: **输入格式**: - 第一行包含一个整数 $ t $,表示测试用例的数量 ($ 1 \le t \le 100 $)。 - 每个测试用例包含两行: - 第一行包含一个整数 $ n $,表示序列的长度 ($ 1 \le n \le 2 \cdot 10^5 $)。 - 第二行包含 $ n $ 个整数 $ a_1, ..., a_n $,表示序列中的元素,这些元素是非递减的 ($ 1 \le a_1 \le a_2 \le ... \le a_n \le 10^6 $)。 **输出格式**: - 对于每个测试用例,输出一行,包含一个整数,表示经过增加操作后,最长的连续子序列中不同元素的最大数量 $ x $。 **输入输出样例**: **输入样例**: ``` 3 9 1 1 3 4 6 6 6 8 10 6 1 2 3 4 5 6 5 10 10 10 10 10 ``` **输出样例**: ``` 5 6 2 ```

加入题单

上一题 下一题 算法标签: