@[BH3rd](/user/715162) ~~魈の迷惑操作~~
n小于等于2000,你设个1001肯定不对,建议社极大值
然后这题正解是堆,复杂度nlogn,如果数据再强点你就要tle
by Lian_lele @ 2024-03-13 16:56:27
@[Lian_lele](/user/923248) 啊呸更正一下 ai小于等于2000
by Lian_lele @ 2024-03-13 16:59:28
@[Lian_lele](/user/923248)
```cpp
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,a[10086],sum=0;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
for(int i=1;i<n;i++)
{
sort(a+1,a+1+n);
sum=sum+a[1]+a[2];
a[1]=a[1]+a[2];
a[2]=10086;
}
cout<<sum;
return 0;
}
```
还是不行
by BH3rd @ 2024-03-13 17:22:21
@[BH3rd](/user/715162) 我眼瞎,n小于等于20000,话说极大值你直接设1000000000不行吗
然后开ll
by Lian_lele @ 2024-03-13 18:28:28
```cpp
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 20010;
int n, b = 0, c = 0, a[MAXN];
int main() {
priority_queue<int> q;
cin >> n;
for (int i = 0; i < n; i++) {
cin >> a[i];
q.push(-a[i]);
}
while (!q.empty()) {
if (q.size() == 1) {
break;
}
b = abs(q.top());
q.pop();
b += abs(q.top());
q.pop();
c += b;
q.push(-b);
}
cout << c;
return 0;
}
```
by Diego_Song @ 2024-03-14 13:18:34
@[Diego_Song](/user/1078710) 优先队列
by Diego_Song @ 2024-03-14 13:19:03
@[Lian_lele](/user/923248) 哦~谢谢大佬
by BH3rd @ 2024-03-15 15:52:43
@[Diego_Song](/user/1078710) 好的,谢谢大佬
by BH3rd @ 2024-03-15 15:53:12