题目
n 个人一起排队接水,第 i 个人需要 b[i] 的时间来接水。( 1≤n≤1000 , 0≤b[i]≤1000)
同时只能有一个人接水,正在接水的人和没有接水的人都需要等待。
完成接水的人会立刻消失,不会继续等待。
你可以决定所有人接水的顺序,并希望最小化所有人等待时间的总和。
input
第一行一个整数 n
接下来 n 行,每行一个整数表示 b[i]
output
一行一个整数,表示所有人等待时间的总和的最小值
Sample 1
Input | Output |
3 1 2 3 | 10 |
Status
#include<algorithm>
#include<iostream>
using namespace std;
int main(){
int n,b[10001],s=0,i;
cin>>n;
for(i=1;i<=n;i++)
cin>>b[i];
sort(b+1,b+n+1);
for(i=1;i<=n;i++)
s=s+b[i]*(n+1-i);
cout<<s<<endl;
}