TopCoder

User's AC Ratio

0.0% (0/1)

Submission's AC Ratio

0.0% (0/2)

Tags

Description

李總是 Nathan 集團的老闆,最近李總打算執行一項很大的計劃,所以他必須妥善分配工作,才能確保這個計劃按他預期的進行。

Nathan 集團有 $N$ 個員工,從 $1$ 到 $N$ 編號,員工 $1$ 是他自己,除了他以外,每一個員工都有一個直屬上司,員工 $i$ 的直屬上司是 $p_i$,且他是 $p_i$ 的直屬下屬。因為員工編號比較小就是階級比較高的意思,所以每個人的直屬上司編號都比自己小。一個員工除了要「指揮」他自己和所有他的直屬下屬之外,他直屬下屬所「指揮」的人也算是在他的指揮之下。正式的說,我們說一個員工 $a$「指揮」員工 $b$ 若

  • $a=b$,
  • $a$ 是 $b$ 的直屬上司,或
  • 存在一個 $a$ 的直屬下屬 $c$,使得 $c$ 指揮 $b$。

總而言之,$a$ 指揮他自己以及他的所有直屬和間接下屬。

李總打算執行的計劃中,有 $K$ 項任務,因為每項任務都不太輕鬆、員工們也還有其他工作要做,所以每一個員工都只能負責至多一項任務。並且,由於增加員工的工作會造成溝通成本,因此每個員工 $i$ 所指揮的所有員工,負責的任務總數最多只能有 $f_i$ 個。還有,每個任務的內容都有些不同,因此並不是每個員工都能負責每一個任務,李總請人列出了一個員工的專長清單,裡面有 $M$ 項,其中第 $i$ 項寫著「員工 $x_i$ 可以負責任務 $y_i$」,為了確保工作品質,一個員工只能負責這個清單上有寫他可以負責的任務。

不幸的是,李總發現他可能沒辦法幫每個任務都找到一個員工來負責,這樣他就得把多餘的任務外包出去了,所以他希望將盡量多的任務指派給員工。請你幫他安排每一個任務要指派給誰。

Input Format

第一行有三個整數 $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$。

  • $1 \leq N,K \leq 5000$
  • $1 \leq M \leq 10000$
  • $1 \leq p_i < i$
  • $0 \leq f_i \leq K$
  • $1 \leq x_i \leq N$, $1 \leq y_i \leq K$

Output Format

第一行輸出一個整數 $c$,代表李總最多可以指派幾個任務給員工。

輸出 $N$ 個整數 $s_1,s_2,\dots,s_N$ 於一行,以空白間隔,其中 $s_i$($1 \leq s_i \leq K$ 或 $s_i=-1$)代表員工 $i$ 負責的任務編號,$-1$ 代表這個員工不負責任何任務。

你的答案會被視為正確答案若滿足以下所有條件:

  • 李總最多能指派給員工的任務數量是 $c$。
  • 如果 $s_i \neq -1$,則存在 $1 \leq j \leq M$ 滿足 $x_j=i$、$y_j=s_i$。
  • 對於一個員工 $i$,所有他指揮的員工 $j$ 中滿足 $s_j \neq -1$ 的數量不超過 $f_i$。
  • $s_i \neq -1$ 的數量恰好是 $c$。
  • 沒有兩個員工負責相同的任務。

如果你輸出的 $c$ 是正確的,並且輸出格式符合要求,但是不滿足最後四個條件,你可以得到 50% 的分數。注意必須要有輸出 $s_1,s_2,\dots,s_N$ 且滿足 $1 \leq s_i \leq K$ 或 $s_i=-1$ 才可以得到部分分數。

Sample Input 1

4 3 4
1 2 3
3 3 1 2
4 1
4 2
1 3
2 2

Sample Output 1

3
3 2 -1 1

Sample Input 2

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

Sample Output 2

5
2 3 1 4 5

Sample Input 3

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

Sample Output 3

3
4 -1 3 -1 -1 -1 -1 2

Hints

在範例 1 中,員工 2 的直屬上司是員工 1、員工 3 的直屬上司是員工 2、員工 4 的直屬上司是員工 3,所以他們每個人所指揮的所有人是:

  • 員工 1:員工 1、2、3、4
  • 員工 2:員工 2、3、4
  • 員工 3:員工 3、4
  • 員工 4:員工 4

在輸出範例中,員工 1 負責任務 3、員工 2 負責任務 2、員工 4 負責任務 1,員工 3 則不負責任何工作。因此,四個員工指揮的人中負責的任務總數是 $3,2,1,1$,符合所有 $f_i$ 的限制。

Problem Source

YTP 2025 高中組程式挑戰營 p13

Subtasks

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

Testdata and Limits

No. Time Limit (ms) Memory Limit (VSS, KiB) Output Limit (KiB) Subtasks
0 4000 1048576 65536 1 3
1 4000 1048576 65536 1 3
2 4000 1048576 65536 1 3
3 4000 1048576 65536 2 3
4 4000 1048576 65536 2 3
5 4000 1048576 65536 2 3
6 4000 1048576 65536 2 3
7 4000 1048576 65536 2 3
8 4000 1048576 65536 2 3
9 4000 1048576 65536 2 3
10 4000 1048576 65536 2 3
11 4000 1048576 65536 2 3
12 4000 1048576 65536 2 3
13 4000 1048576 65536 2 3
14 4000 1048576 65536 2 3
15 4000 1048576 65536 2 3
16 4000 1048576 65536 2 3
17 4000 1048576 65536 2 3
18 4000 1048576 65536 3
19 4000 1048576 65536 3
20 4000 1048576 65536 3
21 4000 1048576 65536 3
22 4000 1048576 65536 3
23 4000 1048576 65536 3
24 4000 1048576 65536 3
25 4000 1048576 65536 3
26 4000 1048576 65536 3
27 4000 1048576 65536 3
28 4000 1048576 65536 3
29 4000 1048576 65536 3
30 4000 1048576 65536 3
31 4000 1048576 65536 3
32 4000 1048576 65536 3
33 4000 1048576 65536 3
34 4000 1048576 65536 3
35 4000 1048576 65536 3
36 4000 1048576 65536 3
37 4000 1048576 65536 3
38 4000 1048576 65536 3
39 4000 1048576 65536 3
40 4000 1048576 65536 3
41 4000 1048576 65536 3
42 4000 1048576 65536 3
43 4000 1048576 65536 3
44 4000 1048576 65536 3
45 4000 1048576 65536 3
46 4000 1048576 65536 3
47 4000 1048576 65536 3
48 4000 1048576 65536 3
49 4000 1048576 65536 3
50 4000 1048576 65536 3
51 4000 1048576 65536 3
52 4000 1048576 65536 3
53 4000 1048576 65536 3
54 4000 1048576 65536 3
55 4000 1048576 65536 3
56 4000 1048576 65536 3
57 4000 1048576 65536 3
58 4000 1048576 65536 3
59 4000 1048576 65536 3
60 4000 1048576 65536 3