某公司的員工之間以階層結構組織上下級關係。公司共有 $n$ 名員工,每名員工都有一個從 $1$ 到 $n$ 的唯一編號,總經理的編號為 $1$。除了總經理以外,每名員工恰有一名直屬上司。員工 $i$ 的直屬上司編號為 $p_i$,且 $p_i<i$。
若 $p_x=y$,則員工 $x$ 是員工 $y$ 的第 $1$ 級下屬。對於 $k>1$,若員工 $p_x$ 是員工 $y$ 的第 $k-1$ 級下屬,則員工 $x$ 是員工 $y$ 的第 $k$ 級下屬。
公司的總經理有機會派一些員工參加進修課程。為此,他決定選擇兩個數 $L$ 和 $R$,派所有編號 $i$ 滿足 $L\le i\le R$ 的員工參加課程。
在選擇 $L$ 和 $R$ 之前,總經理收到了公司員工的 $m$ 個願望。第 $j$ 個願望以兩個數 $u_j$ 和 $k_j$ 表示,意思是員工 $u_j$ 希望派自己的一名第 $k_j$ 級下屬參加課程。為了節省費用,總經理希望選擇 $L$ 和 $R$,使參加進修的員工人數儘可能少,同時滿足所有願望。
請撰寫程式,根據公司的上下級關係和員工願望,求出 $L$ 和 $R$:若派所有編號從 $L$ 到 $R$(包含兩端)的員工參加進修課程,則所有願望都能滿足,且參加進修的員工人數儘可能少。若有多組最佳數對 $(L,R)$,則須找出其中 $L$ 最小的一組。
輸入格式
第一行包含數 $n$,表示公司的員工人數($2\le n\le200\,000$)。第二行包含 $n-1$ 個數:$p_2,p_3,\ldots,p_n$($1\le p_i<i$),表示各員工的直屬上司編號。
第三行包含數 $m$,表示員工願望的數量。
接下來 $m$ 行描述員工的願望,每行包含兩個整數 $u_j,k_j$($1\le u_j<n$,$1\le k_j<n$;保證員工 $u_j$ 至少有一名第 $k_j$ 級下屬)。
輸出格式
輸出所求的兩個數 $L$ 和 $R$。若有多組最佳數對 $(L,R)$,則輸出其中 $L$ 最小的一組。
範例
輸入格式 1
7 1 1 2 2 3 3 3 1 1 3 1 1 2
輸出格式 1
3 6
說明
編號為 $3$、$4$、$5$ 和 $6$ 的員工將參加進修。員工 $3$ 是員工 $1$ 的第 $1$ 級下屬,員工 $4$ 是員工 $1$ 的第 $2$ 級下屬,員工 $6$ 則是員工 $3$ 的第 $1$ 級下屬。
子任務
只有通過某個子任務及其所有先決子任務的全部測試,才能獲得該子任務的分數。
| 子任務 | 分數 | 資料範圍:$n$ | 附加條件 | 先決子任務 |
|---|---|---|---|---|
| $1$ | $19$ | $2\le n\le50$ | ||
| $2$ | $25$ | $2\le n\le3000$ | $1$ | |
| $3$ | $21$ | $2\le n\le200\,000$ | 對所有 $i$,皆有 $p_i=i-1$ | |
| $4$ | $35$ | $2\le n\le200\,000$ | $1,2,3$ |
最終評測結果資訊
可依要求告知每個子任務的分數。