首页 > 其他 > 详细

STL 2133 排队接水

时间:2021-06-17 17:01:11      阅读:17      评论:0      收藏:0      [点我收藏+]

2133 排队接水

n个人一起排队接水,第i个人需要b[i]的时间来接水。(1<=n<=1000,0<=b[i]<=1000)

同时只能有一个人接水,正在接水的人和没有接水的人都需要等待。

完成接水的人会立刻消失,不会继续等待。

你可以决定所有人接水的顺序,并希望最小化所有人等待时间的总和。

 

输入

第一行一个整数n
接下来n行,每行一个整数表示b[i]

输出

一行一个整数,表示所有人等待时间的总和的最小值

输入样例

3
1
2
3

输出样例

10
技术分享图片
#include <iostream>
#include <algorithm>
using namespace std;

int b[1010];
int n, now = 0, ans = 0;

int main() {
    cin >> n;
    for (int i = 1; i <= n; ++i) {
        cin >> b[i];
    }
    sort(b + 1, b + 1 + n);
    for (int i = 1; i <= n; ++i) {
        ans += b[i] * (n - now);
        now++;
    }
    cout << ans << endl;
    
    return 0;
}
View Code

 

STL 2133 排队接水

原文:https://www.cnblogs.com/tianluman/p/14893264.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!