#2799. Modify sequence

Modify sequence

题目描述

有一个长度为n\red{n}的序列a,\red{a,}现在可以对其进行若干次以下操作之一:

将ai(1<=i<=n)\red{a_i(1<=i<=n)}移动到序列的前面

将ai(1<=i<=n)\red{a_i(1<=i<=n)}移动到序列的末尾

现在询问至少有多少操作可以使这个序列有序,即使得ai<=ai+1(1<=i<n),\red{a_i<=a_{i+1}(1<=i<n),}或ai>=ai+1(1<=i<n)\red{a_i>=a_{i+1}(1<=i<n)}。

输入格式

第一行包含一个数字n\red{n}。

第二行有n\red{n}个数字,i\red{i}个数字代表ai\red{a_i}的值。

输出格式

共一行,输出一个数,表示答案。

样例

输入样例1

5
4 2 5 3 5

输出样例1

2

输入样例2

5
5 3 5 2 4

输出样例2

2

提示

样例说明

对于样例1,\red{1,}执行以下两个操作:

将a4=3\red{a_4=3}移到最前面,[3,4,2,5,5]\red{[3,4,2,5,5]};将a3=2\red{a_3=2}移到前面。最终序列变为:[2,3,4,5,5],\red{[2,3,4,5,5],}满足ai<=ai+1(1<=i<n)\red{a_i<=a_{i+1}(1<=i<n)}。

数据范围

对于30%\red{30\%}的数据,保证:1<=n<=103\red{1<=n<=10^3}。

对于50%\red{50\%}的数据,保证结果满足ai<=ai+1(1<=i<n)\red{a_i<=a_{i+1}(1<=i<n)}。

对于另外50%\red{50\%}的数据,保证结果满足ai>=ai+1(1<=i<n)\red{a_i>=a_{i+1}(1<=i<n)}。

对于100%\red{100\%}的数据,保证:1<=n<=106,\red{1<=n<=10^6,}1<=ai<=109\red{1<=a_i<=10^9}。

本题读入量较大,请使用较快读入方式。