開發專案
開發軟體專案時,專案被分割為許多工作任務(task),分配給多位程式設計師。這些 task 有順序關係,只有當順
序在前的 task 完成,才開始開發順序在後的 task。可使用有向無環圖,表示這些 task 順序關係。每個節點代表
一個 task,節點內的數字為編號, 上方數字代表開發task 所需時間;邊與箭頭表示開發順序。請計算開發專
案所需時間。
以下圖為例,節點 2 完成後,才能開始節點 4 的開發。
節點 3 與節點 4 都完成後,才能開始節點 5 的開發。節點 1 需 6 小時,節點 2 需 5 小時,節點 3 需 11 小時,節
點 4 需 4 小時,節點 5 需 8 小時。完成專案最少需 25 小時。
輸入說明
Line 1, 正整數 N,代表專案共有 N 個 task。Line 2N+1,從第 1 個 task開始依序往後:tk;
每一行 輸入正整數 T, K, t1
T 是完成此 task時間,
K 表示此 task完成,後面 K個 task才能開始做,
t1~tk 表示等待此 task完成的 task編號。
輸出說明
專案花費的最少時間。
Sample Input 1: 一般情境
5
6 2 2 3
5 1 4
11 1 5
4 1 5
8 0
Sample Output 1:
25
Sample Input 2:編號最後的 task非最後完成
7
2 2 2 3
3 1 4
6 1 5
11 2 6 7
9 1 7
10 0
7 0
Sample Output 2:
26
Sample Input 3:task間無順序關係
5
1 0
3 0
5 0
7 0
9 0
Sample Output 3:
9
Sample Input 4: 單一路徑
10
1 1 2
2 1 3
3 1 4
4 1 5
5 1 6
6 1 7
7 1 8
8 1 9
9 1 10
10 0
Sample Output 4:
55