题目描述:
电梯最开始在1楼,每一秒可以上升,或者下降一个楼层。
在同一时刻有多个请求时,电梯会优先处理最高楼层的请求。若一人在k层乘电梯去一楼,如果他知道某个时刻所有想坐电梯的人所在的楼层,他要等多久电梯才能到他的楼层。
输入描述:
第一行,两个整数:n,k,代表在当前时刻总共有n个去1楼的请求。
第二行,共n个整数aiai,每个整数代表一个请求所在的层数。
输出描述:
输出一行,他要等待的时间(秒)。
代码展示:
1.#include <stdio.h>
2.int main()
3.{
4. int n,k,x,a = 0;
5. scanf("%d%d",&n,&k);
6. for(int i = 1;i<=n;i++) {
7. scanf("%d",&x);
8. if(x>a) {
9. a = x;
10. }
11. }
12. if(a>k) {
13. printf("%d",a-1+a-k);
14. } else {
15. printf("%d",k);
16. }
17. return 0;
18. }
代码详解:
用一个变量a来记录最高层。然后判断a和第k层的关系,如果a>k,等待时间为a-1+a-k, 如果a<=k,则等待时间为k。