编程题:模拟
米尔科有一个家庭图书馆,由$$N$$本书组成,一本一本地放在一个狭窄的橱柜里。
由于在上一个任务中接受了字母表秘密方面的良好训练,他现在希望按字母顺序排列书籍,这样标题按字母顺序排在第一位的书就可以排在第一位,而按字母顺序排在最后一位的书就可以排在最后一位。
米尔科可以很容易地把一本书从橱柜里拿出来,但很难把它推回书堆,所以只能把书放回书堆的顶部。因此,唯一可用的分类方法是反复从书堆中拉出一本书,并将其放在书堆顶部。
这些书按字母顺序用$$1$$到$$N$$的整数标注。因此,米尔科希望它们按$$(1,2,…,N)$$顺序排列,从顶部开始计算。例如,如果$$N=3$$,且开始顺序为$$(3,2,1)$$,则两步就足够了。首先,他拿出书号$$2$$,把它放在上面,这样书堆就成了$$(2,3,1)$$。之后,他对1号书做了同样的处理,因此这堆书变成了$$(1,2,3)$$。
通过计算排序给定起始顺序所需的最小移动次数来帮助$$Mirko$$。
### 输入格式:
输入的第一行包含整数$$N(N≤300 000)$$。
接下来$$N$$行中的每一行都包含一个正整数。这些N个整数代表了米尔科的书从橱柜顶部到底部的顺序。每个整数$$1,2,…,N$$只出现一次。
### 输出格式:
输出的第一行也是唯一一行必须包含所需的最小移动次数。
### 输入样例1:
in
3
3
2
1
### 输出样例1:
out
2
### 输入样例2:
in
4
1
3
4
2
### 输出样例2:
out
2
答案:若无答案欢迎评论
由于在上一个任务中接受了字母表秘密方面的良好训练,他现在希望按字母顺序排列书籍,这样标题按字母顺序排在第一位的书就可以排在第一位,而按字母顺序排在最后一位的书就可以排在最后一位。
米尔科可以很容易地把一本书从橱柜里拿出来,但很难把它推回书堆,所以只能把书放回书堆的顶部。因此,唯一可用的分类方法是反复从书堆中拉出一本书,并将其放在书堆顶部。
这些书按字母顺序用$$1$$到$$N$$的整数标注。因此,米尔科希望它们按$$(1,2,…,N)$$顺序排列,从顶部开始计算。例如,如果$$N=3$$,且开始顺序为$$(3,2,1)$$,则两步就足够了。首先,他拿出书号$$2$$,把它放在上面,这样书堆就成了$$(2,3,1)$$。之后,他对1号书做了同样的处理,因此这堆书变成了$$(1,2,3)$$。
通过计算排序给定起始顺序所需的最小移动次数来帮助$$Mirko$$。
### 输入格式:
输入的第一行包含整数$$N(N≤300 000)$$。
接下来$$N$$行中的每一行都包含一个正整数。这些N个整数代表了米尔科的书从橱柜顶部到底部的顺序。每个整数$$1,2,…,N$$只出现一次。
### 输出格式:
输出的第一行也是唯一一行必须包含所需的最小移动次数。
### 输入样例1:
in
3
3
2
1
### 输出样例1:
out
2
### 输入样例2:
in
4
1
3
4
2
### 输出样例2:
out
2
答案:若无答案欢迎评论