有一个无限高的大楼,有 n 个人要去楼中的某些层,但大楼的电梯只能停2次,所有人下了电梯之后,如果所在楼层是他要去的楼层,那么无需走楼梯,如果要去的楼层在当前层之下,他可以走楼梯到达目的地的楼层,如果在当前层之上,那么他就无法到达该楼层,因为楼梯是单向向下的。
给出 n 个人要去的楼层,由你来选择电梯在哪两层停靠,才能让所有人都到达想要去的楼层,并且下楼梯的总层数最少。
电梯初始时在 1 层。
第一行:一个数n ,表示人员数量(3\leq n \leq 200000 )
第二行:共 n 个数中间用空格分隔,表示 n 个人要去的楼层 (1\leq ai \leq 100000000 )
输出一个数,表示下楼梯的总层数。
5 1 2 3 5 6
2
样例说明:
停在第 3 层和第 6 层,由于开始在第一层,所以在第一层的人可以直接到达,停在第 3层,第 2层的人要走一层。停在第 6层,第 5层的人要走一层。总共走 2 层。
30%数据(3\leq n \leq 2000 )
100%数据(3\leq n \leq 200000 )
时间限制 | 1 秒 |
内存限制 | 128 MB |