#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}

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