#P1011. 猫猫的积木块
猫猫的积木块
题目描述
猫猫刚刚获得了 个大小互不相同的积木块。他将这些积木块从左到右摆成了一排,第 个位置上包含一个大小为 的积木块。
设第 格上的最小积木块的大小为 ,最大积木块的大小为 。两个相邻格子 和 上的积木块能合并,当且仅当 或 。新的积木块将包含原有第 格和第 格上的所有积木块,并被放置在第 格上。所有编号大于 的格子上的积木块都将向左移动一格以填补空缺。
例如,当 时,猫猫可以:
- 合并第1格和第2格上的积木块。此时剩余三个格子上的积木块大小分别为 。
- 合并第2格和第3格上的积木块。此时剩余两个格子上的积木块大小分别为 。
- 合并第1格和第2格上的积木块。此时所有积木块都被合并到了一个格子上。
在最优策略下,猫猫最多能执行多少次合并操作?
输入格式
每个测试文件包含多组测试数据。第一行包含测试数据的组数 。每组测试数据的格式如下:
第一行包含一个整数 ,表示积木块的数量。
第二行包含 个整数 ,表示初始状态下每个位置上的积木块的大小。
在每个测试文件内,保证所有测试数据的 之和不超过 。
输出格式
对于每组数据,输出一行一个整数,表示最多能执行的合并操作数。
样例
8
4
2 1 4 3
4
1 4 2 3
4
3 1 4 2
5
1 3 5 2 4
5
1 4 2 5 3
5
2 5 3 1 4
6
1 3 6 5 2 4
6
2 5 1 3 6 4
3
3
2
3
3
3
4
4