- C++
题解
- 2025-7-6 15:51:31 @
#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 条评论
-
xly3011 LV 3 @ 2025-7-6 15:52:40
真好用
- 1