石大 6-9 待提交

#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
",s[1]);
     else if(n==2)
          printf("%d
",max(s[1],s[2]));
          else
               if(n==3)
          {
               for(int i=1;i<=3;i++)
                    sum+=s[i];
               printf("%d
",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
",sum);

     
}
         
原文地址:https://www.cnblogs.com/WDKER/p/5572733.html