原题链接:同学的等待
//一开始过不去 是因为sum开的不够大,int不行,long long就行了
//题目也坑的一批,答案是不计算自己的等待时间的 题目根本没说
//NMD坑了我好长时间
#include<bits/stdc++.h>
using namespace std;
int x;
int a[100086];
void qsort(int l,int r){//快速排序,就不多说了
int i=l;
int j=r;
int x=a[(l+r)/2];//int x=a[rand()%(r-l+1)+l]; //防止退化
while(i<=j){
while(a[i]<x)i++;
while(a[j]>x)j--;
if(i<=j){
swap(a[i],a[j]);
i++,j--;
}
}
if(j-l>=1)qsort(l,j);
if(r-i>=1)qsort(i,r);
}
int main(){
int n,i;
long long sum; //int 不行
cin>>n;
for(i=1;i<=n;i++)
cin>>a[i];
qsort(1,n); //从小到大排序
for(i=1;i<=n;i++){
if(i>=2)
sum+=a[i-1]*(n-i+1);
}
cout<<sum<<endl;
}
9.9 分
2 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复