#CF2033E. Sakurako, Kosuke 与排列
Sakurako, Kosuke 与排列
E. Sakurako, Kosuke 与排列
每个测试的时间限制:2 秒
内存限制:256 兆字节
Sakurako 的考试结束了,她表现得非常出色。作为奖励,她收到了一个排列 。
Kosuke 并不完全满意,因为他有一门考试没通过,没得到礼物。他决定借助她的门锁密码潜入她的房间,把排列搞乱,使其变得 简单。
如果一个排列 是 简单 的,则对于每个 (),以下两个条件之一成立:
例如,排列 、 和 是简单排列,而 和 不是。
在一次操作中,Kosuke 可以选择两个索引 (),并交换 和 。
Sakurako 马上就要回家了。你的任务是计算 Kosuke 需要的最少操作次数,使得排列变成简单排列。
输入
第一行包含一个整数 ()——测试用例的数量。
每个测试用例包含两行:
- 第一行包含一个整数 ()——排列 的长度。
- 第二行包含 个整数 ()——排列 的元素。
保证所有测试用例的 之和不超过 。
保证 是一个排列。
输出
对于每个测试用例,输出使排列简单所需的最少操作次数。
示例
输入:
6
5
1 2 3 4 5
5
5 4 3 2 1
5
2 3 4 5 1
4
2 3 4 1
3
1 3 2
7
2 3 1 5 6 7 4
输出:
0
0
2
1
0
2
注
在第一个和第二个样例中,排列已经简单。
在第四个样例中,只需交换 和 ,排列变为 ,用了 次操作。