# ZeroJudge - d872: 過橋問題 ### 題目連結:https://zerojudge.tw/ShowProblem?problemid=d872 ###### tags: `ZeroJudge` `數學` `模擬` `輸出入最佳化` ```cpp= #include <iostream> #include <algorithm> using namespace std; int main() { cin.sync_with_stdio(false); cin.tie(nullptr); int number, times[100005], totalTime; while (cin >> number) { for (int i = 0; i < number; i++) cin >> times[i]; if (!number) cout << "0\n"; else if (number == 1) cout << times[0] << '\n'; else { totalTime = 0; sort(times, times + number); while (number >= 4 && times[0] + times[number - 2] > (times[1] << 1)) totalTime += (times[1] << 1) + times[0] + times[number - 1], number -= 2; while (number > 2) totalTime += times[0] + times[number - 1], number--; cout << totalTime + times[1] << '\n'; } } } ```