/ Vijos / 题库 /

反转卡片

反转卡片

时间限制: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**

信息

ID
2681
难度
(无)
分类
数据结构 | 平衡树 点击显示
标签
(无)
递交数
0
已通过
0
通过率
?
上传者