#z1072. 快速队列

快速队列

题目描述

一开始,同学们是随便站队的。由于大多数同学都比较懒不太爱动,体育老师只能执行一种操作:把最右边的同学移动到最左边。

现在需要你写一个程序帮体育老师算一算,他能不能成功地让队伍从低到高排列。

输入格式

第一行一个正整数 n,表示一共有 n 个同学。

第二行一共 n 个整数 h[1] 到 h[n],表示从左到右每一个同学的身高。

输出格式

如果体育老师能够通过若干次移动使得队伍从左到右身高递增,则输出需要移动的最小次数。

如果只凭借该操作无法让同学们按身高排队,则输出 -1。

输入输出样例

输入样例 #1

``` 5 160 165 170 145 150 ```

输出样例 #1

``` 2 ```

样例说明 #1

第一次将身高 150 的同学移动到最左边。

第二次将身高 145 的同学移动到最左边。

此时队伍变为:145\ 150\ 160\ 165\ 170,满足从左到右身高递增。

说明/提示

数据范围

对于 50\% 的数据,1<=n<=1000,1<= h[i] <=200。

对于 100\% 的数据,1<=n <=1000000,1<=h[i] <= 2000000。

如果有身高相等的同学,则两人排队顺序无所谓。