注意题目的数据大小,ans要用long long类型。
#include <iostream>
#include<algorithm>
using namespace std;
int n,b[200005];
void solve();
int main()
{
cin>>n;
for(int i=0;i<n;i++){
cin>>b[i];
}
sort(b,b+n);
solve();
return 0;
}
void solve(){
long long ans=0;
int j;
for(int i=0;i<n-1;i++){
int min1=b[i],min2=b[i+1];
int t=min1+min2;
ans+=t;
for(j=i+2;j<n;j++){
if(b[j]<t){
b[j-1]=b[j];
}
else break;
}
b[j-1]=t;
/*for(int j=i+1;j<n;j++){
cout<<b[j];
}
cout<<endl;*/
}
if(n==1) ans=b[0];
cout<<ans<<endl;
}