读书人

10954Add All-水题

发布时间: 2012-09-10 22:20:12 作者: rapoo

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;}

读书人网 >编程

热点推荐