CF1861D.Sorting By Multiplication

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

You are given an array aa of length nn , consisting of positive integers.

You can perform the following operation on this array any number of times (possibly zero):

  • choose three integers ll , rr and xx such that 1lrn1 \le l \le r \le n , and multiply every aia_i such that lirl \le i \le r by xx .

Note that you can choose any integer as xx , it doesn't have to be positive.

You have to calculate the minimum number of operations to make the array aa sorted in strictly ascending order (i. e. the condition a1<a2<<ana_1 < a_2 < \dots < a_n must be satisfied).

输入格式

The first line contains a single integer tt ( 1t1041 \le t \le 10^4 ) — the number of test cases.

The first line of each test case contains one integer nn ( 1n21051 \le n \le 2 \cdot 10^5 ) — the length of the array aa .

The second line of each test case contains nn integers a1,a2,,ana_1, a_2, \dots, a_n ( 1ai1091 \le a_i \le 10^9 ) — the array aa .

Additional constraint on the input: the sum of nn over all test cases does not exceed 21052 \cdot 10^5 .

输出格式

For each test case, print one integer — the minimum number of operations required to make aa sorted in strictly ascending order.

输入输出样例

  • 输入#1

    3
    5
    1 1 2 2 2
    6
    5 4 3 2 5 1
    3
    1 2 3

    输出#1

    3
    2
    0

说明/提示

In the first test case, we can perform the operations as follows:

  • l=2l = 2 , r=4r = 4 , x=3x = 3 ;
  • l=4l = 4 , r=4r = 4 , x=2x = 2 ;
  • l=5l = 5 , r=5r = 5 , x=10x = 10 .

After these operations, the array aa becomes [1,3,6,12,20][1, 3, 6, 12, 20] .In the second test case, we can perform one operation as follows:

  • l=1l = 1 , r=4r = 4 , x=2x = -2 ;
  • l=6l = 6 , r=6r = 6 , x=1337x = 1337 .

After these operations, the array aa becomes [10,8,6,4,5,1337][-10, -8, -6, -4, 5, 1337] .In the third test case, the array aa is already sorted.

首页