贪心-开机1

Description

需要把不同机房的n个设备开机,一开始在电梯里,对每个设备,都需要移动到设备旁开机,然后回到电梯。

已知从电梯走到每个设备所需的时间(返回时间相同)。从 0 时刻起,到每个设备被开机的时间为该设备等待时间。求所有设备最小的总等待时间。电梯移动的时间忽略不计。

Input

每组数据第一行为设备数 1 ≤ n ≤ 1000,接下来 n 行每行一个距离 1 ≤ di ≤ 1000 表示电梯走到第 i 个设备的时间。

Output

所有设备最小的总等待时间。

Sample Input

3
2
1
5

Sample Output

16

Hint

先启动第 2 个设备,电梯走到该设备耗时 1,当前时间点为 1,该设备等待时间为 1
走回电梯,耗时 1,走到第 1 个设备耗时 2,当前时间点为 4,该设备等待时间为 4
走回电梯,耗时 2,走到第 3 个设备耗时 5,当前时间点为 11,该设备等待时间为 11
总耗时为 1+4+11=16

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<algorithm>
using namespace std;
int n, d[1100];
int main()
{
    while(scanf("%d", &n) != EOF)
    {
        for(int i = 0; i < n; i ++)
            scanf("%d", &d[i]);
        sort(d, d + n);
        int delay = 0;
        long long ans = 0;
        for(int i = 0; i < n; i ++)
        {
            delay += d[i];
            ans += delay;
            delay += d[i];
        }
        printf("%lld\n", ans);
    }
    return 0;
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容