题目
原题链接:B. Design Tutorial: Learn from Life
题意
有n个人乘电梯,电梯最多乘k个人。每次电梯从a楼到b楼花|a-b|s。问最少花几秒送完所有人并回到一楼。
参考了其他作者的思路。从最高的开始送,每次只需要跑k个人中楼层最高的那一位。
由
3 2
2 3 4
这个样例可以看出,第一次只成功运送了2楼的人,第二次成功运送了3、4楼的人。因此从高向低找。
代码
#include
using namespace std;
int main() {
int n,k,s[2000];
cin>>n>>k;
for(int i=0;i>s[i];
}
sort(s,s+n);
int ans=0;
for(int i=n-1;i>=0;i-=k){
ans+=2*(s[i]-1);
}
printf("%d\n",ans);
return 0;
}