using namespace std;
int n,a[10005],t,ans;
void put_(int b){
a[++t]=b;
int s=t;
int d=s/2;
while(d>0&&a[s]<a[d]){
swap(a[s],a[d]);
s=d;
d=s/2;
}
}
void pop(){
a[1]=a[t];
--t;
int d=1,s=2;
while(s<=t&&a[d]>a[s]){
swap(a[d],a[s]);
d=s;
s=2*d;
}
}
int main(){
scanf("%d",&n);
for(int i=1;i<=n;++i){
int b;
scanf("%d",&b);
put_(b);
}
for(int i=1;i<n;++i){
int k=0;
if(a[2]>a[3]){
a[3]+=a[1];
k=a[3];
}else{
a[2]+=a[1];
k=a[2];
}
pop();
ans+=k;
}
printf("%d",ans);
return 0;
}
P1090小根堆做法,但是只A了一个点
求dalao们帮帮蒟蒻orz