解决方案 »

  1.   

    #include<iostream>
    #include<cstdio>
    #include<map>
    #include<cstring>
    #include<cmath>
    #include<vector>
    #include<algorithm>
    #include<set>
    #include<string>
    #include<queue>
    #include <stack>
    using namespace std;
    #pragma warning(disable : 4996)
    vector<int>num;
    int sum;void dfs(int cnt)
    {
    if(cnt == 3)
    {
    sum += num[0] + num[1] + num[2];
    return;
    }
    else if(cnt == 2)
    {
    sum += num[1];
    return;
    }
    else if(cnt == 1)
    {
    sum += num[0];
    return;
    }
    sum += num[1] * 2 + num[0] + num[cnt - 1];
    dfs(cnt - 2);
    }
    int main()
    {
    int x, n;
    while (cin >> n)
    {
    num.clear();
    sum = 0;
    for(int i = 1; i <= n; i++)
    {
    cin >> x;
    num.push_back(x);
    }
    sort(num.begin(), num.end());
    dfs(num.size());
    cout << sum << endl;
    }
    return 0;
    }