李總是 Nathan 集團的老闆,最近李總打算執行一項很大的計劃,所以他必須妥善分配工作,才能確保這個計劃按他預期的進行。
Nathan 集團有 $N$ 個員工,從 $1$ 到 $N$ 編號,員工 $1$ 是他自己,除了他以外,每一個員工都有一個直屬上司,員工 $i$ 的直屬上司是 $p_i$,且他是 $p_i$ 的直屬下屬。因為員工編號比較小就是階級比較高的意思,所以每個人的直屬上司編號都比自己小。一個員工除了要「指揮」他自己和所有他的直屬下屬之外,他直屬下屬所「指揮」的人也算是在他的指揮之下。正式的說,我們說一個員工 $a$「指揮」員工 $b$ 若
總而言之,$a$ 指揮他自己以及他的所有直屬和間接下屬。
李總打算執行的計劃中,有 $K$ 項任務,因為每項任務都不太輕鬆、員工們也還有其他工作要做,所以每一個員工都只能負責至多一項任務。並且,由於增加員工的工作會造成溝通成本,因此每個員工 $i$ 所指揮的所有員工,負責的任務總數最多只能有 $f_i$ 個。還有,每個任務的內容都有些不同,因此並不是每個員工都能負責每一個任務,李總請人列出了一個員工的專長清單,裡面有 $M$ 項,其中第 $i$ 項寫著「員工 $x_i$ 可以負責任務 $y_i$」,為了確保工作品質,一個員工只能負責這個清單上有寫他可以負責的任務。
不幸的是,李總發現他可能沒辦法幫每個任務都找到一個員工來負責,這樣他就得把多餘的任務外包出去了,所以他希望將盡量多的任務指派給員工。請你幫他安排每一個任務要指派給誰。
第一行有三個整數 $N,K,M$,代表員工數量、任務數量以及專長清單上的項目數量。
第二行有 $N-1$ 個整數 $p_2,p_3,\dots,p_N$,其中 $p_i$ 是員工 $i$ 的直屬上司。
第三行有 $N$ 個整數 $f_1,f_2,\dots,f_N$,代表所有員工 $i$ 所指揮的員工之中,負責的任務總數最多是 $f_i$。
接下來有 $M$ 行,其中第 $i$ 行有兩個整數 $x_i,y_i$,代表員工 $x_i$ 可以負責任務 $y_i$。
第一行輸出一個整數 $c$,代表李總最多可以指派幾個任務給員工。
輸出 $N$ 個整數 $s_1,s_2,\dots,s_N$ 於一行,以空白間隔,其中 $s_i$($1 \leq s_i \leq K$ 或 $s_i=-1$)代表員工 $i$ 負責的任務編號,$-1$ 代表這個員工不負責任何任務。
你的答案會被視為正確答案若滿足以下所有條件:
如果你輸出的 $c$ 是正確的,並且輸出格式符合要求,但是不滿足最後四個條件,你可以得到 50% 的分數。注意必須要有輸出 $s_1,s_2,\dots,s_N$ 且滿足 $1 \leq s_i \leq K$ 或 $s_i=-1$ 才可以得到部分分數。
4 3 4 1 2 3 3 3 1 2 4 1 4 2 1 3 2 2
3 3 2 -1 1
5 5 8 1 1 3 1 5 5 5 5 5 1 5 2 3 4 4 2 3 5 5 3 1 2 5 1 2
5 2 3 1 4 5
8 5 10 1 2 3 4 4 2 3 3 5 5 4 5 0 3 2 6 2 3 3 6 2 1 4 5 1 6 3 8 2 4 3 1 5 7 4
3 4 -1 3 -1 -1 -1 -1 2
在範例 1 中,員工 2 的直屬上司是員工 1、員工 3 的直屬上司是員工 2、員工 4 的直屬上司是員工 3,所以他們每個人所指揮的所有人是:
在輸出範例中,員工 1 負責任務 3、員工 2 負責任務 2、員工 4 負責任務 1,員工 3 則不負責任何工作。因此,四個員工指揮的人中負責的任務總數是 $3,2,1,1$,符合所有 $f_i$ 的限制。
YTP 2025 高中組程式挑戰營 p13
No. | Testdata Range | Constraints | Score |
---|---|---|---|
1 | 0~2 | 範例測試資料 | 0 |
2 | 3~17 | $\forall 1 \leq i \leq N,\ f_i = K$ | 10 |
3 | 0~60 | 無額外限制 | 10 |