QOJ.ac

QOJ

Límite de tiempo: 2.0 s Límite de memoria: 512 MB Puntuación total: 100 Hackeable ✓

#18134. Новый рейтинг

Estadísticas

Кевин раньше участвовал в соревнованиях на Codeforces. Недавно команда KDOI разработала новую проверяющую систему под названием Forcescode.

Кевин участвовал в $n$ соревнованиях на Forcescode. В $i$-м соревновании его рейтинг результативности равен $a_i$.

Теперь он взломал бэкенд Forcescode и собирается выбрать интервал $[l, r]$ ($1 \le l \le r \le n$), чтобы пропустить все соревнования в этом интервале. После этого его рейтинг будет пересчитан следующим образом:

  • Изначально его рейтинг $x = 0$;
  • Для каждого $1 \le i \le n$, после $i$-го соревнования:
    • Если $l \le i \le r$, это соревнование пропускается, и рейтинг остается неизменным;
    • В противном случае рейтинг обновляется по следующим правилам:
      • Если $a_i > x$, рейтинг $x$ увеличивается на 1;
      • Если $a_i = x$, рейтинг $x$ остается неизменным;
      • Если $a_i < x$, рейтинг $x$ уменьшается на 1.

Помогите Кевину найти максимально возможный рейтинг после пересчета, если он выберет интервал $[l, r]$ оптимально. Обратите внимание, что Кевин должен пропустить хотя бы одно соревнование.

Входные данные

Каждый тест содержит несколько наборов входных данных. В первой строке входных данных содержится целое число $t$ ($1 \le t \le 5 \cdot 10^4$) — количество наборов входных данных. Далее следует описание наборов входных данных.

В первой строке каждого набора входных данных содержится целое число $n$ ($1 \le n \le 3 \cdot 10^5$) — количество соревнований.

Во второй строке содержатся $n$ целых чисел $a_1, a_2, \dots, a_n$ ($1 \le a_i \le n$) — рейтинги результативности в соревнованиях.

Гарантируется, что сумма $n$ по всем наборам входных данных не превышает $3 \cdot 10^5$.

Выходные данные

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

Примеры

Входные данные 1

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

Выходные данные 1

5
4
0
4
5

Примечание

В первом наборе входных данных Кевин должен пропустить хотя бы одно соревнование. Если он выберет любой интервал длины 1, его рейтинг после пересчета будет равен 5.

Во втором наборе входных данных оптимальный выбор Кевина — интервал $[3, 5]$. Во время пересчета его рейтинг меняется следующим образом: $$0 \xrightarrow{a_1=1} 1 \xrightarrow{a_2=2} 2 \xrightarrow{\text{skip}} 2 \xrightarrow{\text{skip}} 2 \xrightarrow{\text{skip}} 2 \xrightarrow{a_6=3} 3 \xrightarrow{a_7=4} 4$$

В третьем наборе входных данных Кевин должен пропустить единственное соревнование, поэтому его рейтинг останется равным начальному значению 0.

В четвертом наборе входных данных оптимальный выбор Кевина — интервал $[7, 9]$. Во время пересчета его рейтинг меняется следующим образом: $$0 \xrightarrow{a_1=9} 1 \xrightarrow{a_2=9} 2 \xrightarrow{a_3=8} 3 \xrightarrow{a_4=2} 2 \xrightarrow{a_5=4} 3 \xrightarrow{a_6=4} 4 \xrightarrow{\text{skip}} 4 \xrightarrow{\text{skip}} 4 \xrightarrow{\text{skip}} 4$$

В пятом наборе входных данных оптимальный выбор Кевина — интервал $[5, 9]$.

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.