10954Add All------------水题
#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#include <queue>#include <algorithm>#include <cmath>#define N 100000using namespace std;int n;int a[N];int cmp(const void *a,const void *b){ return *(int*)a-*(int*)b;}int main(){// int t;// scanf("%d",&t);// freopen("ex.in","r",stdin); while(scanf("%d",&n)&&n) { queue<int> que; for(int i=0; i<n; ++i) scanf("%d",&a[i]); qsort(a,n,sizeof(a[0]),cmp); int i=0,sum=0,t=0,x[2];// cout<<"----------"<<endl; while(i<n||!que.empty()) { if(que.empty()||(!que.empty()&&i<n&&a[i]<que.front())) { x[t]=a[i++]; } else { x[t]=que.front(); que.pop(); } if(t) { int temp=x[0]+x[1]; sum+=temp; que.push(temp); } t=1-t; } printf("%d\n",sum); } return 0;}