列表

详情


NC52279. 坐电梯

描述

sun非常懒,所以他非常喜欢坐电梯,但是他发现了一个问题:当他在k楼想要坐电梯去1楼时,如果比他高的楼层有人想坐电梯去1楼,他就必须等待,直到电梯把他楼上的人接完了,才能到他的楼层来接他,于是他非常的苦恼。现在他想问问你,如果他知道某个时刻所有想坐电梯的人所在的楼层,他要等多久电梯才能到他的楼层。

 

关于电梯:

电梯最开始在1楼,每一秒可以上升,或者下降一个楼层。

在同一时刻有多个请求时,电梯会优先处理最高楼层的请求。

输入描述

第一行,两个整数:n,k,代表在当前时刻总共有n个去1楼的请求,小sun在第k楼,数据保证k不为1
第二行,共n个整数a_i,每个整数代表一个请求所在的层数。

输出描述

输出一行,他要等待的时间(秒)

示例1

输入:

5 3
1 2 3 5 5

输出:

6

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

Python3 解法, 执行用时: 1610ms, 内存消耗: 23752K, 提交时间: 2023-04-10 19:51:35

n,k=map(int,input().split())
num=0
s=''
for i in input():
    if i==' ':
        if int(s)>num:
            num=int(s)
        s=''
        continue
    s+=i
print(2*num-k-1)

C++ 解法, 执行用时: 116ms, 内存消耗: 424K, 提交时间: 2022-05-03 14:59:20

#include <stdio.h>
int main()
{
	int n,k,ma=0,x;
	scanf("%d%d",&n,&k);
	while(n--)
	{
        scanf("%d",&x);
		if(x>ma) ma=x;
	}
	printf("%d",ma-1+ma-k);
	return 0;
}

C++14(g++5.4) 解法, 执行用时: 224ms, 内存消耗: 8488K, 提交时间: 2019-10-26 17:07:59

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n,m,max,x;
	cin>>n>>m;
	for(int i=0;i<n;i++){scanf("%d",&x);if(x>max)max=x;}
	cout<<2*max-m-1;
}

C(clang11) 解法, 执行用时: 121ms, 内存消耗: 8316K, 提交时间: 2020-11-23 16:15:50

#include<stdio.h>

int main(){
int n,k,i,c,a=1;
scanf("%d%d",&n,&k);
for(i=1;i<=n;i++){
    scanf("%d",&c);
    if(c>a)a=c;}
a=a-1+a-k;
printf("%d\n",a);
}

上一题