RYIP在线题库
首 页   >   习题练习   >   提交
Problem2194--数字排列(number)

2194: 数字排列(number)

[Creator : ]
Time Limit : 1.000 sec  Memory Limit : 128 MB

【 Description 】

一天,小 k 对如何给一个整数数组按照不递减顺序排序产生了兴趣。作为一名小学生,她能做的只有一个操作:单位移动。每次她可以把最后一个元素移动到第一个位置,也就是:a1,a2,...,an→an,a1,a2,...,an−1
帮助小k确定:最少需要花多少次操作才能把数组排好序?

【 Input 】

从文件 number.in读取数据。

第一行一个正整数 n(2 ≤ n ≤ 10^5),表示数组大小。

第二行 n 个正整数 a1, a2,⋯, an(1 ≤ ai ≤ 10^5),表示数组中的元素

【 Output 】

输出到文件 number.out 中。

如果不可能完成,输出-1,否则输出最少花费的操作数。

输入数据#1
2
2 1
输出数据#1
1
输入数据#2
3
1 3 2
输出数据#2
-1
输入数据#3
2
1 2
输出数据#3
0




【 Sample Input 】

2
2 1

【 Sample Output 】

1

【HINT】

说明

【数据范围】

对于 20% 的数据,n ≤ 10;

对于 40% 的数据,n ≤ 1000;

对于 60% 的数据,n ≤ 10000;

对于 90% 的数据,n ≤ 50000;

对于 100% 的数据,n ≤ 100000。


【 Source/Category 】