输入数据占两行,一行人数,一行接水所用时间,
输出一行,为最小的总等待时间,具体如图
思路,先从小到大排序时间,等待时间是当前取水时间成等待人数,那么先让取水快的人取水,其等待时间就小
对 5
5 3 10 4 9
先排序 3 4 5 9 10,
sumt+=t[i]*(n-i-1),循环
3✘4+4✘3+5✘2+9✘1+10✘0=43
#include <iostream>
using namespace std;
int main()
{
int p[100] = {0};
int n;
cin >> n ;
for(int i=0;i<n;i++)
{
cin >> p[i];
}
for(int i=0;i<n-1;i++)
for(int j=0;j<n-i-1;j++)
{
if(p[j] > p[j+1])
{
int t = p[j];
p[j] = p[j+1];
p[j+1] = t;
}
}
int res = 0;
for(int i=0;i<n;i++)
{
res=res+p[i]*(n-i-1);
}
cout << res << endl ;
return 0;
}