#L0400. 最短等价程序
最短等价程序
题目描述
有一类程序只包含输入语句与输出语句,我们可以用一个非负整数序列 来描述它。
程序从前往后依次执行每个元素 :
- 若 ,表示一条输入语句:程序从输入中读取一个整数。
- 否则,表示一条输出语句:程序输出第 次输入读取到的整数。保证执行本语句前,程序至少进行了 次输入。
特别地,一个长度为 的空程序也是合法的。
给定一个长度为 的程序 ,求能够实现相同功能的程序所需的最短长度。
两个程序功能相同,当且仅当对于任意长度为 、值在 范围内的输入序列,两个程序执行的输出语句次数相同,且每次输出的结果均一致。
输入格式
第一行,一个正整数 ,表示程序的长度。
第二行, 个非负整数 ,描述了一个程序。
输出格式
仅一行一个整数,表示实现相同功能的程序的最小长度。
样例
5
0 0 0 1 24
7
0 0 1 0 3 1 37
7
0 1 0 0 2 1 05
4
0 0 0 00
提示
【样例解释 #1】
长度为 的程序 , 均可实现相同的功能。可以证明不存在长度 且功能相同的程序,所以答案为 。
【数据范围】
对于 的数据,保证 非严格单调递增。
对于 的数据,,,且保证执行任何输出语句前,程序至少进行了对应次数的输入。
难度
普及-
通过率
—
尝试
0
已通过
0
- ID
- 1128
- 类型
- 传统题
- Time Limit
- 1000ms
- Memory Limit
- 512MiB
- 上传者