```c++
#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10;
long long a[N];
int main()
{
int n;
scanf("%d", &n);
for(int i = 1; i <= n; i++) scanf("%d", &a[i]);
sort(a + 1, a + 1 + n);
long long sum = 0;
for(int i = 1; i <= n - 1; i++)
{
int New = a[i] + a[i + 1];
sum += New;
a[i + 1] = New;
for(int j = i + 1; j <= n - 1; j++)
{
if(a[j] > a[j + 1]) swap(a[j], a[j + 1]);
else break;
}
}
printf("%lld", sum);
return 0;
}
```
by liuyuan1 @ 2023-07-28 09:09:25
这就是代码,@liuyuan1是我c++同学
by Liuzhenyuan @ 2023-07-28 09:10:32
@[Liuzhenyuan](/user/998446) P6033
by FFTotoro @ 2023-07-28 09:12:28
合并果子的加强版是把时间压到了500ms一个点,但那段代码没一个TLE(开了o2)。
by Liuzhenyuan @ 2023-07-28 09:31:20
@[liuyuan1](/user/736396)
我的代码也是一个意思,但是只有一个AC,之后才发现原来在加的过程中得时刻保持大小顺序不变,这下顺利AC了。谢谢
by shiTXYY @ 2023-08-05 20:40:21