#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int main() {
    int N;
    cin >> N;
    vector<int> times(N);
    for (int i = 0; i < N; ++i) {
        cin >> times[i];
    }
    sort(times.begin(), times.end());
    int total_time = 0;
    while (N > 3) {
        // 两种策略取较小值A
        int strategy1 = times[0] + times[1] + times[N-1] + times[1];
        int strategy2 = times[0] + times[N-1] + times[0] + times[N-2];
        total_time += min(strategy1, strategy2);
        N -= 2;
    }
    // 处理剩余人数
    if (N == 1) {
        total_time += times[0];
    } else if (N == 2) {
        total_time += times[1];
    } else if (N == 3) {
        total_time += times[0] + times[1] + times[2];
    }
    cout << total_time << endl;
    return 0;
}

1 条评论

  • 1