题库练习 Shift and Reverse
← 上一题 下一题 →

A16450 | Shift and Reverse

时间限制1s
内存限制256MB
通过 / 提交0/0

题目描述

Given an array of integers $a_1, a_2, \ldots, a_n$ . You can make two types of operations with this array:

- Shift: move the last element of array to the first place, and shift all other elements to the right, so you get the array $a_n, a_1, a_2, \ldots, a_{n-1}$ .
- Reverse: reverse the whole array, so you get the array $a_n, a_{n-1}, \ldots, a_1$ .

Your task is to sort the array in non-decreasing order using the minimal number of operations, or say that it is impossible.

输入格式

The first line of input contains a single integer $t$ ( $1 \le t \le 10^4$ ) — the number of test cases. Descriptions of test cases follow.

The first line of each test case contains an integer $n$ ( $1\le n \le 10^5$ ) — size of the array.

The second line of each test case contains $n$ integers $a_1, a_2, \ldots, a_n$ ( $1 \le a_i \le 10^9$ ) — elements of the array.

It is guaranteed that sum of $n$ over all test cases does not exceed $2 \cdot 10^5$ .

输出格式

For each test case output the number $k$ , the minimal number of operations you need to sort the array. If it is impossible to sort the array using these operations, output $-1$ .

输入输出样例

输入 #1
11
5
3 2 1 5 4
5
1 1 2 1 1
4
3 7 10 5
5
1 2 3 4 5
2
5 1
3
3 4 1
5
4 1 3 4 4
3
5 1 1
4
2 5 5 4
5
2 2 1 1 2
2
5 5
输出 #1
3
2
-1
0
1
1
3
1
2
2
0
C++ 编辑器
输入
输出