#YDRB011C. 递增 (increase)

递增 (increase)

题目背景

T. B. D.

普通数独的规则为:在每个单元格中填入 1199 之间的一个整数,使得任何行、列或粗体标注的 3×33\times 3 区域中的数字都不重复。

题目描述

考虑一种数独的变体——温度计数独:普通数独规则适用。网格中包含一些温度计形状,数字必须严格从球状部分到扁平部分递增。如果你不知道普通数独规则,请查看【题目背景】。

现在考虑下面的一个温度计数独:

petgyi6.md.png

容易发现,由于第 11 行的温度计从 22 开始,77 结束,并且由 66 个数组成,因此第 11 行第 272\sim7 列可以确定依次是 272\sim7

同理,给定一个值域在 [0,106][0,10^6] 上的严格递增正整数序列 {an}\{a_n\},如果隐去其中的若干个数字后,加上严格递增的条件,依旧有可能还原出原来的序列。

例如,令 a=[1,2,3,5]a=[1,2,3,5],则

  • 若隐去 a1,a2a_1,a_2,得到 [,,3,5][*,*,3,5],由于 1a1<a2<31\le a_1<a_2<3,可以确定 a1=1,a2=2a_1=1,a_2=2,由此还原。
  • 若隐去 a3a_3,得到 [1,2,,5][1,2,*,5],则只能推断出 a3{3,4}a_3\in\{3,4\},无法还原。

现在,你需要确定,你最多可以隐去多少个数字,使得隐去后依旧可以还原得到最初的序列。

输入格式

从文件 increase.in 中读入。

第一行一个整数 nn,表示序列 aa 的长度。

第二行 nn 个整数,描述序列 aa

输出格式

输出到文件 increase.out 中。

输出仅一行一个整数,表示你最多可以隐去的数字数量。

输入输出样例

输入样例 1

4
1 2 3 5

输出样例 1

2

样例 1 说明

容易发现,隐去 a1,a2a_1,a_2 是最优的方法。解释见【题目描述】。

样例 2

见下发压缩包中 increase2.in\textbf{\textit{increase2.in}}increase2.ans\textbf{\textit{increase2.ans}}

该样例符合测试点 121\sim 2 的限制。

样例 3

见下发压缩包中 increase3.in\textbf{\textit{increase3.in}}increase3.ans\textbf{\textit{increase3.ans}}

该样例符合测试点 353\sim 5 的限制。

样例 4

见下发压缩包中 increase4.in\textbf{\textit{increase4.in}}increase4.ans\textbf{\textit{increase4.ans}}

该样例符合测试点 7107\sim 10 的限制。

说明

数据规模与约定

测试点 nn\le 特殊性质
121\sim2 2020 /
353\sim5 10310^3
66 无特殊限制 A
7107\sim10 /
  • 性质 A:ai=ia_i=i

对于 100%100\% 的数据,有 1n1061\le n\le 10^61ai1061\le a_i\le 10^6{an}\{a_n\} 严格递增