题解 | 显生之宙
显生之宙
https://www.nowcoder.com/practice/c2335f2530974af3a4ec15db2851f532
#include<bits/stdc++.h>
using namespace std;
#define int long long
signed main()
{
int t;cin>>t;
while(t--)
{
int n;
cin>>n;
int sum=0;
vector<int>a(n);
for(int i=0;i<n;i++)
{
cin>>a[i];
}
sort(a.begin(),a.end());
sum=a[0];int idx;
bool flag=0;long long d=0;
for(int i=1;i<n;i++)
{
if(sum<0)
{
d+=sum;
sum=sum*2+a[i]-a[i-1];
}
else
{
sum+=a[i]+d;
}
}
cout<<sum<<endl;
}
}
查看6道真题和解析