#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <queue>
#include <algorithm>
#include <cmath>
#define N 100000
using 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;
}
10954 Add All------------水题
最新推荐文章于 2025-08-28 21:55:07 发布
本文介绍了一个使用C++实现的程序,该程序通过qsort函数对输入的整数进行排序,并利用队列实现了一种特殊的求和操作。通过对数组元素的操作与队列的交互,展示了数据结构和算法的实际应用。

2万+

被折叠的 条评论
为什么被折叠?



