#include <cstdio> #include <iostream> #include <ctype.h> #include <cstring> #include <cmath> #include <algorithm> #include <queue> #include <vector> #include <stack> using namespace std; int s[40]; stack<int> ans; bool cmp1(int a,int b) { return a<b; } //priority_queue<int ,cmp1 > pq; bool cmp(int a,int b) { return a>b; } int main() { int n; scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d",s+i); sort(s+1,s+n+1); int sum=0; if(n==1) printf("%d\n",s[1]); else if(n==2) printf("%d\n",max(s[1],s[2])); else if(n==3) { for(int i=1;i<=3;i++) sum+=s[i]; printf("%d\n",sum); } else { sum+=((n+1)/2-1)*(s[1]+s[2]); if(n&1) { sum+=s[n]; for(int i=n-1;i>2;i-=2) { sum+=s[i]+s[2]; } } else { for(int i=n;i>2;i-=2) sum+=s[i]+s[2]; sum+=s[2]; } } printf("%d\n",sum); }
时间: 2024-12-16 16:08:24