反转卡片
时间限制:1秒 内存限制:256M
【题目描述】
小A将 \(N\) 张卡片整齐地排成一排,其中每张卡片上写了 \(1\sim N\) 的一个整数,每张卡片上的数各不相同。接下来你需要按小A的要求反转卡片,使得左数第一张卡片上的数字是 1。操作方法:令左数第一张卡片上的数是 \(K\),如果 \(K=1\) 则停止操作,否则将左数第 \(1\sim K\) 张卡片反转。
比如是 \(N=5\) 的一种情况:3 4 2 1 5
第 1 次 \(K=3\) 反转后得到:2 4 3 1 5
第 2 次 \(K=2\) 反转后得到:4 2 3 1 5
第 3 次 \(K=4\) 反转后得到:1 3 2 4 5
可见反转 3 次后,左数第一张卡片上的数变成了 1,操作停止。
你的任务是,对于一种排列情况,计算要反转的次数。你可以假设小A不会让你操作超过 100000 次。
【输入格式】
第 1 行一个整数 \(N\);
第 2 行 \(N\) 个整数,为 v1\simN$ 的一个全排列。
【输出格式】
输出一个整数表示要操作的次数。如果经过有限次操作仍无法满足要求,输出 -1。
【输入输出样例】
Input
5
3 4 2 1 5
Output
3
【数据限制】
对于 \(100\%\) 的数据,\(0<N≤300,000\)。
【来源】
Mr.he**