#D0628. [DAY05]寄存器排序
[DAY05]寄存器排序
题目描述
你有一个队列 ,从队头到队尾分别有 这 个数字,且它们是 的一个排列。你想通过一些寄存器把这些数字排序,寄存器共有 个格子。你每步可以做以下操作之一:
- 把 的队头数字弹出并输出。
- 把 的队头数字弹出并放到寄存器的某个格子里。
- 把寄存器的某个格子里的数字输出。
你希望通过一系列操作使得你输出的数正好是 。你需要计算出最少需要的寄存器的数量,也就是最小的 。
输入格式
第一行一个整数 。
接下来一行 个整数,第 个是 。
输出格式
一行一个整数表示 的最小值。
4
1 3 4 2
2
样例解释 1
一种可能的操作序列是:
- 直接弹出并输出
- 进入寄存器 1
- 进入寄存器 2
- 直接弹出并输出
- 输出寄存器 1 的
- 输出寄存器 2 的
一共用到了两个寄存器。
10
1 3 2 4 6 7 5 8 10 9
2
输入数据3/输出数据3
提示
对于 的数据:。
- 子任务 1(20 分)
- 。
- 子任务 2(20分)
- 的数据,。
- 子任务 3(60分)
- 无特殊限制