题目描述
给定一个数组 a1,a2,…,an。你可以任意多次执行以下操作:
- 选择一对相邻的相等元素 ai=ai+1(如果存在至少一对)。
- 用值为 ai+1 的一个元素替换它们。
每次执行这样的操作后,数组的长度将减少一个(元素相应地重新编号)。你能得到的数组 a 的最小可能长度是多少?
输入格式
第一行包含一个整数 n(1≤n≤500)——数组 a 的初始长度。
第二行包含 n 个整数 a1,a2,…,an(1≤ai≤1000)——初始数组 a。
输出格式
输出一个整数——执行上述操作任意次后可能得到的最小长度。
样例
5
4 3 2 2 3
2
7
3 3 4 4 4 3 3
2
3
1 3 5
3
1
1000
1
说明/提示
样例解释
在第一个测试中,一种最优的操作序列是:4 3 2 2 3→4 3 3 3→4 4 3→5 3
在第二个测试中,一种最优的操作序列是:3 3 4 4 4 3 3→4 4 4 4 3 3→4 4 4 4 4→5 4 4 4→5 5 4 →6 4
在第三个和第四个测试中,你无法执行这个操作。