提交时间:2025-02-07 19:46:16
运行 ID: 36145
#include<bits/stdc++.h> using namespace std; int q[3]={4,5,6},q1[3]={3,3,4}; int n,a[800],d,m,ans,p=10,b[800],l=1; int cmp(int a,int b){ return a>b; } int main(){ cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; } sort(a+1,a+n+1,cmp); d=(n-1)/3; m=(n-1)%3; if(n<=4){ for(int i=1;i<=n-1;i++){ ans+=q1[i-1]*a[i+1]; } ans+=2*a[1]; } else{ for(int i=1;i<=3;i++){ b[l]=q1[i-1]; l++; } for(int i=1;i<=d-1;i++){ for(int j=0;j<3;j++){ b[l]=q[j-1]; q[j]++; l++; } } for(int i=1;i<=m;i++){ b[l]=q[i-1]; l++; } b[l]=2+d; sort(b+1,b+n+1); for(int i=1;i<=n;i++){ ans+=a[i]*b[i]; } } cout<<ans; return 0; }