B. Балансировка
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
512 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Экрад имеет массив целых чисел $$$a_1, a_2, \ldots, a_n$$$. Гарантируется, что для каждого $$$1 \le i \lt n$$$, $$$a_i \neq a_{i+1}$$$.

Экрад может сделать несколько операций над массивом, чтобы сделать его строго возрастающим.

В каждой операции он может выбрать два целых числа $$$l$$$ и $$$r$$$ ($$$1 \le l \le r \le n$$$) и заменить $$$a_l, a_{l+1}, \ldots, a_r$$$ любыми $$$r-l+1$$$ целыми числами $$$a'_l, a'_{l+1}, \ldots, a'_r$$$, удовлетворяющими следующему ограничению:

  • Для каждого $$$l \le i \lt r$$$ сравнение между $$$a'_i$$$ и $$$a'_{i+1}$$$ должно быть таким же, как между $$$a_i$$$ и $$$a_{i+1}$$$, т.е. если $$$a_i \lt a_{i + 1}$$$, то $$$a'_i \lt a'_{i + 1}$$$; иначе, если $$$a_i \gt a_{i + 1}$$$, то $$$a'_i \gt a'_{i + 1}$$$; в противном случае, если $$$a_i = a_{i + 1}$$$, то $$$a'_i = a'_{i + 1}$$$.

Экрад хочет узнать минимальное количество операций выше, чтобы сделать массив строго возрастающим. Однако для него это оказалось слишком сложным, поэтому помогите ему!

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

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

Первая строка каждого набора входных данных содержит одно целое число $$$n$$$ ($$$2 \le n \le 2 \cdot 10^5$$$).

Вторая строка каждого набора содержит $$$n$$$ целых чисел $$$a_1, a_2, \ldots, a_n$$$ ($$$-10^9 \le a_i \le 10^9$$$).

Гарантируется, что для каждого $$$1 \le i \lt n$$$, $$$a_i \neq a_{i+1}$$$.

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

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

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

Пример
Входные данные
4
3
3 2 1
3
3 1 2
4
-2 -5 5 2
7
1 9 1 9 8 1 0
Выходные данные
2
1
1
3
Примечание

В первом примере возможен следующий способ получить минимальное количество операций.

  • В первой операции выберите $$$l = 2, r = 2$$$ и $$$a'_2 = 4$$$, тогда $$$a=[3, 4, 1]$$$;
  • Во второй операции выберите $$$l = 1, r = 2$$$ и $$$a'_1 = -1, a'_2 = 0$$$, тогда $$$a=[-1, 0, 1]$$$.

Во втором примере возможен следующий способ получить минимальное количество операций.

  • В первой операции выберите $$$l = 2, r = 3$$$ и $$$a'_2 = 4, a'_3 = 5$$$, тогда $$$a = [3, 4, 5]$$$.

В третьем примере возможен следующий способ получить минимальное количество операций.

  • В первой операции выберите $$$l = 2, r = 3$$$ и $$$a'_2 = -1, a'_3 = 1$$$, тогда $$$a = [-2, -1, 1, 2]$$$.