题解 | 搬水果
搬水果
https://www.nowcoder.com/practice/e4c775b0f3ee42a4bb72c26d2e1eef8a
#include <queue>
#include <stdio.h>
#include <string>
using namespace std;
int main(){
int n;
int num;
while(scanf("%d",&n)!=EOF){
if(n==0){break;}
priority_queue<int> pqueue;
for(int i=0;i<n;++i){
scanf("%d",&num);
pqueue.push(-1*num);
}
int tili=0;
while(pqueue.size()>=2){
int tili1=pqueue.top();
pqueue.pop();
int tili2=pqueue.top();
pqueue.pop();
tili+=tili1+tili2;
pqueue.push(tili1+tili2);
}
printf("%d\n",-1*tili);
}
return 0;
}
#王道原题#