唉。。。。。。数据弱了些,连我这种一遍遍找都能过。
我没用快排,这样会超时。
#include<stdio.h>
#include<stdlib.h>
int cmp(const void *a,const void *b){return *(int *)a-*(int *)b;}
int x1,x2,n,i,ans=0,a[10010];
int soo(){
int j,m1=2000000000,x1=0,x2=0,m2=2000000000;
for(j=0;j<n;j++)if(a[j]<m1){m1=a[j];x1=j;}
for(j=0;j<n;j++)if(a[j]<m2 && (a[j]>m1 || (a[j]==m1 && j!=x1))){m2=a[j];x2=j;}
a[x1]+=a[x2];
a[x2]=2100000000;
return m1+m2;
}
int main(){
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d",&a[i]);
}
for(i=1;i<n;i++){
ans+=soo();
}
printf("%d\n",ans);
return 0;
}