CF1863B Split Sort
Description
You are given a permutation $ ^{\dagger} $ $ p_1, p_2, \ldots, p_n $ of integers $ 1 $ to $ n $ .
You can change the current permutation by applying the following operation several (possibly, zero) times:
- choose some $ x $ ( $ 2 \le x \le n $ );
- create a new permutation by:
- first, writing down all elements of $ p $ that are less than $ x $ , without changing their order;
- second, writing down all elements of $ p $ that are greater than or equal to $ x $ , without changing their order;
- replace $ p $ with the newly created permutation.
For example, if the permutation used to be $ [6, 4, 3, 5, 2, 1] $ and you choose $ x = 4 $ , then you will first write down $ [3, 2, 1] $ , then append this with $ [6, 4, 5] $ . So the initial permutation will be replaced by $ [3, 2, 1, 6, 4, 5] $ .
Find the minimum number of operations you need to achieve $ p_i = i $ for $ i = 1, 2, \ldots, n $ . We can show that it is always possible to do so.
$ ^{\dagger} $ A permutation of length $ n $ is an array consisting of $ n $ distinct integers from $ 1 $ to $ n $ in arbitrary order. For example, $ [2,3,1,5,4] $ is a permutation, but $ [1,2,2] $ is not a permutation ( $ 2 $ appears twice in the array), and $ [1,3,4] $ is also not a permutation ( $ n=3 $ but there is $ 4 $ in the array).
Input Format
Each test contains multiple test cases. The first line contains the number of test cases $ t $ ( $ 1 \le t \le 1000 $ ). The description of the test cases follows.
The first line of each test case contains one integer $ n $ ( $ 1 \le n \le 100\,000 $ ).
The second line of each test case contains $ n $ integers $ p_1, p_2, \ldots, p_n $ ( $ 1 \le p_i \le n $ ). It is guaranteed that $ p_1, p_2, \ldots, p_n $ is a permutation.
It is guaranteed that the sum of $ n $ over all test cases does not exceed $ 100\,000 $ .
Output Format
For each test case, output the answer on a separate line.
Explanation/Hint
In the first test case, $ n = 1 $ and $ p_1 = 1 $ , so there is nothing left to do.
In the second test case, we can choose $ x = 2 $ and we immediately obtain $ p_1 = 1 $ , $ p_2 = 2 $ .
In the third test case, we can achieve the minimum number of operations in the following way:
1. $ x = 4 $ : $ [6, 4, 3, 5, 2, 1] \rightarrow [3, 2, 1, 6, 4, 5] $ ;
2. $ x = 6 $ : $ [3, 2, 1, 6, 4, 5] \rightarrow [3, 2, 1, 4, 5, 6] $ ;
3. $ x = 3 $ : $ [3, 2, 1, 4, 5, 6] \rightarrow [2, 1, 3, 4, 5, 6] $ ;
4. $ x = 2 $ : $ [2, 1, 3, 4, 5, 6] \rightarrow [1, 2, 3, 4, 5, 6] $ .