排队打水
有 n 个人排队到 1 个水龙头处打水,第 i 个人装满水桶所需的时间是 t i t_i ti,请问如何安排他们的打水顺序才能使所有人的等待时间之和最小?
#include <iostream>
#include <algorithm>
using namespace std;
const int N = 1e5 + 10;
int n;
int t[N];
int main() {
cin >> n;
for (int i = 0; i < n; i ++ )
scanf("%d", &t[i]);
sort(t, t + n);
long long res = 0;
for (int i = 0; i < n; i ++ )
res += t[i] * (n - i - 1);
cout << res << endl;
return 0;
}