PA

Description

汉诺塔升级了:现在我们有\(N\)个圆盘和\(N\)个柱子,每个圆盘大小都不一样,大的圆盘不能放在小的圆盘上面,\(N\)个柱子从左到右排成一排。每次你可以将一个柱子上的最上面的圆盘移动到右边或者左边的柱子上(如果移动之后是合法的话)。现在告诉你初始时的状态,你希望用最少的步数将第\(i\)小的盘子移动到第\(i\)根柱子上,问最小步数。

Format

Input

第一行一个正整数\(T\),代表询问的组数。
接下来𝑇组数据,每组数据第一行一个整数\(N\)。
接下来一行每行\(N\)个正整数,代表每个柱子上圆盘的大小。

Output

输出共\(T\)行,代表每次的答案。如果方案不存在,输出“\(−1\)”。

Sample 1

Input

4
3
2 1 3
2
7 8
2
10000 1000
3
97 96 95

Output

4
0
-1
20 

Limitation

1s, 512MiB for each test case.

Hint

样例解释

无。

数据范围与规定

对于70%的数据,\(N\)的值都是相等的。
对于100%的数据,\(1 ≤ T ≤ 6 × 10^3,1 ≤ N ≤ 7\)。

Source

CSP2019模拟题六

信息

ID
1027
难度
9
分类
(无)
标签
(无)
递交数
3
已通过
1
通过率
33%
上传者