题解 | #搬水果#
搬水果
https://www.nowcoder.com/practice/e4c775b0f3ee42a4bb72c26d2e1eef8a
#include <functional> #include <iostream> #include <queue> #include <vector> using namespace std; int main() { priority_queue<int,vector<int>,greater<int>> smallerH; int n; while(cin>>n){ if(n==0) break; for(int i=0;i<n;i++){ int w; cin>>w; smallerH.push(w); } int minw=0; while(smallerH.size()>1){ int a=smallerH.top(); smallerH.pop(); int b=smallerH.top(); smallerH.pop(); int c=a+b; minw+=c; smallerH.push(c); } cout<<minw<<endl; } }