题目描述
小明举办了一场相亲聚会,聚合在小礼堂举行,聚合吸引了很多男孩和女孩。现在有 n 个男孩报名参加。一开始,n 个男孩站成一排,一个接一个地走上舞台。然而,小明突然知道,每个男孩都有自己的小情绪,如果男孩是第 k 个上台的,他的坏情绪将是 (k−1)×D,D 是小男孩自带的情绪系数,因为他必须等待 k-1 人。幸运的是,小礼堂里有一间暗室,所以小明可以暂时让男孩进入暗室,让他后面的男孩在他前面上台。因为暗室很窄,最先进入暗室的男孩必须最后离开。小明想改变暗室里男孩们的顺序,以使坏情绪的总量是最少的。你能help小明吗?
输入输出格式
输入格式 第一行有一个整数 n,表示男孩的数量; 第二行有 n 个整数 D,表示各男孩的情绪系数,每个整数用一个空格隔开。 输出格式 针对输入,打印出最少的坏情绪总量。
输入输出样例1
输入 5 1 2 3 4 5 输出 20
输入输出样例2
输入 5 5 4 3 2 2 输出 24
说明提示
0<n≤100,0≤D≤100
我的代码
#include <iostream>
#include <string>
#include<algorithm>
using namespace std;
int main(){
int n;
cin>>n;
int D[n];
for(int i=0;i<n;i++){
cin>>D[i];
}
sort(D,D+n);//升序排序
int sum=0;
int a=0;
for(int i=n-1;i>=0;i--)
{
sum=sum+D[i]*a;
a++;
}
cout<<sum;
return 0;
}
测评没有通过,五个测试集通过了两。