#X4B. 「Jason-1」IO++
「Jason-1」IO++
题目描述
有一类只有输入语句与输出语句的程序,我们用一个非负整数序列 描述它。
该程序将从前往后依次执行,对于第 个元素 :
- 若 ,表示一条输入语句:
- 程序将从输入中读取一个整数。
- 否则,表示一条输出语句:
- 程序将输出第 次输入读取到的整数。
- 对于给出的程序,保证执行本语句前,程序至少进行了 次输入。对于你编写的程序,你同样需要保证这一点。
特别地,一个长度为 的空程序也是合法的。
给定一个长度为 的程序 ,你需要求出能够实现相同的功能的程序所需的最短长度。
两个程序能实现相同功能,当且仅当对于任意的长度为 、值为 之内整数的输入,两个程序执行的输出语句次数相同,且每一次输出的结果均一致。
输入格式
第一行,一个正整数 ,表示程序的长度。
第二行, 个非负整数 ,描述了一个程序。
输出格式
仅一行一个整数,表示要实现相同功能的程序所需要的最小长度。
样例
5
0 0 0 1 2
4
样例 1 解释
长度为 的程序 , 均可以实现相同的功能。可以证明不存在长度 且实现了相同功能的程序,所以答案为 。
- 对于输入 ,程序 和 和 的输出均为 ,符合题意。
- 可以验证,对于任意的长度为 、值为 之内整数的输入,两个程序执行的输出语句次数相同,且每一次输出的结果均一致。
但是,程序 无法实现相同的功能,因为对于输入 ,该程序的输出为 ,与原程序的 不相同,故不能实现相同功能。
程序 是不合法的程序,因为运行第 条指令(即一条输出语句 )时,只执行了 次输入语句。
7
0 0 1 0 3 1 3
7
样例 2 解释
不存在更短的程序能实现相同功能。
7
0 1 0 0 2 1 0
5
样例 3 解释
长度为 的程序 可以实现相同功能。
4
0 0 0 0
0
样例 4 解释
由于没有输出语句,因此长度为 的空程序即可实现相同功能。
数据范围
对于 的数据,保证 非严格单调递增,即对于任意 均有 。
对于 的数据,,,且保证执行任何输出语句 前,程序至少进行了 次输入。