描述
一天中午,有 N 个学生来到食堂买饭,他们需要排成了一个一字队伍并按顺序打饭,现在已经知道了每个人买饭的时间, 现在食堂的管理员希望知道他们按照怎样的顺序买饭能够使得所有人等待时间的总和最小。(每个人等待的时间 = 排在他前面的人的打饭时间和 + 自己打饭的时间)
输入描述
第一行一个整数 N 表示人数,第二行 N 个整数表示每个人买饭所需要的时间,所有整数均不超过 100。
输出描述
输出一行,包括一个整数,表示所有人等待时间总和的最小值。
用例输入 1
5 1 2 3 4 5
用例输出 1
35
用例输入 2
5 45 10 48 37 9
用例输出 2
334
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
int li[n]={0};
for (int i=0;i<n;i++) cin>>li[i];
sort(li,li+n);
long long m=0;
for(int i=0;i<n;i++)
{
for (int j=0;j<=i;j++) m+=li[j];
}
cout<<m;
}
标签:int,排队,整数,li,问题,用例,打饭,买饭
From: https://blog.csdn.net/whycthe/article/details/139309972