Олимпиадный тренинг

Задача . D. Сортировка умножением


Вам задан массив \(a\) длины \(n\), состоящий из положительных целых чисел.

Вы можете применять следующую операцию любое количество раз (возможно, ноль раз):

  • выбрать три целых числа \(l\), \(r\) и \(x\), для которых \(1 \le l \le r \le n\), и умножить каждое \(a_i\), для которого \(l \le i \le r\), на \(x\).

Обратите внимание, что вы можете выбрать любое целое число \(x\), не обязательно положительное.

Вам нужно определить минимальное число таких операций, за которое вы можете сделать массив \(a\) отсортированным строго в порядке возрастания (т. е. должно выполняться условие \(a_1 < a_2 < \dots < a_n\)).

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

Первая строка содержит одно число \(t\) (\(1 \le t \le 10^4\)) — количество наборов входных данных.

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

Вторая строка каждого набора данных содержит \(n\) целых чисел \(a_1, a_2, \dots, a_n\) (\(1 \le a_i \le 10^9\)) — массив \(a\).

Дополнительное ограничение на входные данные: сумма всех \(n\) по всем наборам входных данных не превосходит \(2 \cdot 10^5\).

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

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

Примечание

В первом наборе входных данных мы можем выполнять следующие операции:

  • \(l = 2\), \(r = 4\), \(x = 3\);
  • \(l = 4\), \(r = 4\), \(x = 2\);
  • \(l = 5\), \(r = 5\), \(x = 10\).
После этих операций массив \(a\) превратится в \([1, 3, 6, 12, 20]\).

Во втором наборе входных данных мы можем выполнять следующие операции:

  • \(l = 1\), \(r = 4\), \(x = -2\);
  • \(l = 6\), \(r = 6\), \(x = 1337\).
После этих операций массив \(a\) превратится в \([-10, -8, -6, -4, 5, 1337]\).

В третьем наборе входных данных массив \(a\) уже отсортирован.


Примеры
Входные данныеВыходные данные
1 3
5
1 1 2 2 2
6
5 4 3 2 5 1
3
1 2 3
3
2
0

time 2000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w643
Комментарий учителя