java的优先队列也很好用啊,结果要用long保存害我WA了几发以及多组输入。。
代码:
import java.util.PriorityQueue;
import java.util.Queue;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while(in.hasNext()){
int n = in.nextInt();
Queue<Integer> queue = new PriorityQueue<Integer>();
for(int i = 0; i<n; i++){
queue.add(in.nextInt());
}
long cost = 0;
while(queue.size()>1){
int c1 = queue.poll();
int c2 = queue.poll();
cost += c1+c2;
queue.add(c1+c2);
}
System.out.println(cost);
}
}
}