使用PriorityQueue解决这种问题,简直不要太爽
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.PriorityQueue;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws Exception{
BufferedReader reader=new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st=new StringTokenizer(reader.readLine());
int n=Integer.parseInt(st.nextToken());
PriorityQueue<Integer> pq=new PriorityQueue();
st=new StringTokenizer(reader.readLine());
for (int i = 0; i <n ; i++) {
pq.add(Integer.parseInt(st.nextToken()));
}
int cout=0;
while (pq.size()>1){
int a=pq.poll();
int b=pq.poll();
int c=a+b;
pq.add(c);
cout+=c;
}
System.out.println(cout);
reader.close();
}
}