#P1007. 数据恢复
数据恢复
题目描述
你是一名数据恢复工程师,正在分析一块损坏的硬盘。硬盘中的数据被组织成不定长数据包,每个数据包的格式固定:
第一个整数是长度字段 ,表示该数据包后面紧跟着 个数据单元(整数)。
例如,数据包 是合法的:长度 后面恰好有 个数据。
完整的文件由若干个这样的数据包首尾相连组成,不允许有多余数据。
然而,由于硬盘损坏,你读取到的原始整数序列 中混入了一些错误的值(可能是长度字段错误,也可能是多余的数据)。
你唯一能做的操作是删除任意位置的一个整数(相当于丢弃该字节)。
你的目标是:在尽可能保留更多整数的情况下,使剩余的序列能够恰好分割成若干个合法的数据包。
请你输出最多能保留的整数个数。
输入格式
第一行一个整数 ,表示原始序列的长度。
第二行 个整数,第 个整数为 ,表示序列中的元素,整数之间以空格分隔。
输出格式
输出一个整数,表示最多能保留的整数个数。
样例
7
3 3 4 5 2 6 1
7
4
5 6 3 2
0
5
1 2 3 4 5
3
样例解释
第一个测试用例中, 可以分割成 和 ,保留 个整数。
第二个测试用例中,无论如何删除都分割不了,只能全部删除。
第三个测试用例中,可以通过删除第一个和最后一个元素使序列变为 ,保留 个整数。
数据范围
对于 的数据,。
对于 的数据,。
对于 的数据,,。