開一個大小為m的vector代表m個水龍頭,分別放m個水龍頭裝水花的總時間,重複挑出裡面最小值加上下一個裝水的人花的時間。以範例一為例:
原本的vector:4 4 1
排序:1 4 4 (1最小,代表這個位置的水龍頭最快空出來)
加上下個人:3(1+2) 4 4
排序:3 4 4
加上下個人:4(3+1) 4 4
所有人都裝完水,從vector中挑出最大者(最慢裝完水):4
開一個大小為m的vector代表m個水龍頭,分別放m個水龍頭裝水花的總時間,重複挑出裡面最小值加上下一個裝水的人花的時間。以範例一為例:
原本的vector:4 4 1
排序:1 4 4 (1最小,代表這個位置的水龍頭最快空出來)
加上下個人:3(1+2) 4 4
排序:3 4 4
加上下個人:4(3+1) 4 4
所有人都裝完水,從vector中挑出最大者(最慢裝完水):4
C++ 優先佇列:
priority_queue<int,vector<int>, greater<int>> pq;