143. Day 3 PE. 掛長的技能樹

0 Judge

Code: 0


掛長的技能樹

題目敘述

你聽說過日月掛長嗎?
想當年掛長還是個 LV.1 的新手勇者的時候,遇到了一位長老。那位長老和他說:「小子,我看你筋骨奇特, 是百年難得一見的練武奇才,這裡剛好有幾本演算法秘笈,就一本87元賣給你吧!」 掛長拿到了武功秘笈很開心決定馬上開始他的修行,只是這時候他發現了一個問題。 秘笈上的技能都會需要消耗一定的技能點數,技能點數必須要靠不停的用手指做伏地挺身才能夠獲得。同時,技能有時候還會需要一些前置技能才能夠學得會。 掛長想要知道,書上的每個技能,如果要學會他需要多少技能點數,可是書上只有寫那個技能本身需要的技能點數,並沒有包含前置技能需要的技能點數。這本來是個困難的問題,不過掛長發現一個規律,就是這些書上每個技能都一定是另外某一個技能的前置技能,而且不會同時是兩個以上技能的前置技能。不過有一個技能例外,就是大絕招,每本書上的大絕招不會是任何技能的前置技能。 掛長想要學會大絕招,於是掛長決定找你,魔法師見習生,用魔法來幫他的忙。

輸入說明

每本秘笈開頭有一個數字 N 代表總共有幾個技能。
每個技能開頭是一個字串 Si 和一個正整數 pi ,分別代表技能的名字和技能本身需要的技能點數, Si 是只包含英文字母且不超過 20 個字元的字串。 接下來是一個數字 ki 代表這個技能有哪些前置技能,緊接著 ki 個用空白隔開的字串代表前置技能的名稱。

$ 1 \leq N \leq 10^5 $ $ 1 \leq pi \leq 100 $

輸出說明

對於每個技能輸出一行,包含技能名稱和這個技能需要的總計能點數,用一個空白隔開。
技能必須要按照原本書上的順序才行。

範例輸入

5
Fireball 5 0
Smite 3 0
Clairvoyance 7 2 Fireball Smite
Teleport 6 0
Revive 3 2 Clairvoyance Teleport

範例輸出

Fireball 5
Smite 3
Clairvoyance 15
Teleport 6
Revive 24

提示

Clairvoyance 必須要先學會 Fireball 和 Smite ,所以是 5 + 3 + 7 = 15 。
Revive 必須要先學會 Clairvoyance 和 Teleport ,所以是 15 + 6 + 3 = 24 。


Judge Setting

run-time limit: 500 ms
memory limit: 65535000 byte
測資數量: 0