Logo Wy Online Judge

WyOJ

#642. IOIP 20231203 stacking

Unity

时间限制: 1 秒
内存限制: 256 MB
输入: 标准输入
输出: 标准输出

题目描述

Unity 和总统 Curtis 共同控制了弗吉尼亚州的所有居民。然而现在冲突已经解决,所有人的控制权都转移到了 Unity 手中,需要释放所有居民,让他们恢复行动自由。

弗吉尼亚州共有 $n$ 个居民,编号从 $1$ 到 $n$。为了安全地恢复所有居民的行动自由,必须严格按照顺序释放他们:先释放第 $1$ 个,然后第 $2$ 个,依此类推,最后释放第 $n$ 个。

起初 Unity 控制着所有人,但她不能随意释放任何人。被 Unity 控制的人排成一个序列 $a_i$。每次操作可以执行以下三种之一:

  • 将 Unity 控制的最后一个(即数组 $a$ 中最后位置)人移交给总统(并将该人放到数组 $b$ 的末尾,$b$ 初始为空);
  • 或者对称地,将总统控制(即数组 $b$ 中)的最后一个人交还给 Unity,并将其放到数组 $a$ 的末尾;
  • 或者释放数组 $a$ 或数组 $b$ 中的最后一个人。

换句话说,$a$ 和 $b$ 相当于两个栈,每次操作可以将一个栈顶的人转移到另一个栈顶,或者释放某个栈顶的人。问最少需要多少次操作才能按照从 $1$ 到 $n$ 的顺序释放所有人?

输入格式

第一行一个整数 $n$,表示 Unity 控制的居民数量($1 \le n \le 2 \cdot 10^5$)。

第二行包含 $n$ 个不同的整数 $a_i$,表示 Unity 栈中人的编号序列($1 \le a_i \le n$)。

输出格式

输出一个整数,表示释放所有居民所需的最少操作次数。

样例

样例 1

输入:

4
1 2 3 4

输出:

7

样例 2

输入:

5
3 5 4 2 1

输出:

8

```

题目信息
  • 难度 UKE
  • 控制组 group_default
  • 时间限制 1 s
  • 空间限制 256 MB
  • 数据大小 5.704 MB
提交统计
  • 提交数 0
  • 通过数 0
  • 通过率 N/A