AcWing 148. 合并果子
原题链接
简单
作者:
shark_big
,
2022-02-23 19:08:29
,
所有人可见
,
阅读 217
#include <bits/stdc++.h>
using namespace std;
inline int read() {
int x=0,f=1;
char ch=getchar();
while(ch<'0'||ch>'9') {
if(ch=='-')
f=-1;
ch=getchar();
}
while(ch>='0'&&ch<='9') {
x=(x<<1)+(x<<3)+(ch^48);
ch=getchar();
}
return x*f;
}
inline void write(int x) {
char F[200];
int tmp=x>0?x:-x ;
if(x<0)putchar('-') ;
int cnt=0 ;
while(tmp>0) {
F[cnt++]=tmp%10+'0';
tmp/=10;
}
while(cnt>0)putchar(F[--cnt]);
}
int a[1000000],n,l,ji;
int main(){
cin>>n;
for(int i=0;i<n;i++)
cin>>a[i];
sort(a,a+n);
while(l<n-1){
ji+=a[l]+a[l+1];
a[l+1]+=a[l];
l++;
for(int j=l+1;j<n;j++)
if(a[j-1]>a[j])
swap(a[j-1],a[j]);
else
break;
}
cout<<ji;
return 0;
}