題目背景
「梦里鲜红的蔷薇」 「睁眼是苍白的玫瑰」
在無限延伸的二元樹上,纏繞著一株薔薇花,它上面一共開了 $n$ 朵薔薇,構成了一個包含根節點的連通塊。
題目描述
咒語是一個長為 $m$ 的 $01$ 串,若對一朵薔薇念動咒語,則會有魔術迴路沿著咒語向下傳達。魔術迴路會逐個按照咒語的每一個字元,若為 $0$ 則傳達到左子節點,若為 $1$ 則傳達到右子節點,如不存在則魔術失敗。對於每朵薔薇,問若對其念動咒語,魔術是否會失敗,如成功則傳達到哪朵玫瑰?
輸入格式
第一行輸入一個正整數 $n$,表示薔薇花的數量。
接下來 $n - 1$ 行,每行輸入 $3$ 個數 $u, v, f$,表示 $u$ 透過字元 $f$ 延伸到 $v$。
接下來一個正整數 $m$,表示咒語的長度。
接下來一行輸入一個長為 $m$ 的 $01$ 串,表示該咒語。
輸出格式
輸出一行 $n$ 個整數,第 $i$ 個整數表示第 $i$ 朵薔薇念動咒語所到達的薔薇,如果魔術失敗則輸出 $0$。
子任務
對於 $100\%$ 的資料,保證 $1 \le n, m \le 3 \times 10^5$,$1 \le u, v \le n$,$0 \le f \le 1$。
| 測試點 | $n, m$ | 特殊限制 |
|---|---|---|
| 1, 2, 3, 4 | $\le 10^3$ | |
| 5, 6, 7 | $\le 3 \times 10^5$ | A |
| 8, 9, 10 | $\le 3 \times 10^5$ |
特殊限制 A:每朵薔薇向下最多延伸一支。
範例
範例 1 輸入
6 1 2 0 1 3 1 3 4 0 3 5 1 5 6 0 2 1 0
範例 1 輸出
4 0 6 0 0 0
範例 2
見選手目錄下的 rose/rose2.in 與 rose/rose2.ans。