题目大意:有n个人要到不同楼层去,但电梯只能装下K个人,不计上下的时间,问最少需要多少时间所有人可以达到自己的楼层。
解题思路:计划楼后一大截了,马不停蹄地追赶着队友的题数,无限忙碌中.....这个题直接贪心,先将最高层的人运输完成,再运输下一层的人以此类推,详见code。
题目来源:http://codeforces.com/problemset/problem/472/A
code:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int MAXN = 2000+100;
int n,k,ans;
int f[MAXN];
int main(){
while(~scanf("%d%d",&n,&k)){
for(int i=0;i<n;++i)
scanf("%d",&f[i]);
sort(f,f+n);
ans=0;
for(int i=n-1;i>=0;){
ans+=(f[i]-1)*2;
i-=k;
}
printf("%d\n",ans);
}
return 0;
}