"sub-dictionary" 收集字典一部分的單字,當然也會符合上述的條件,而有門計算語言的課程指派一個作業,找到語言最基礎的單字量,並且把它建立成一部字典。 藉此可以推論理解出新的單字。
要讓機器自動學習相當困難,所以我們決定先教他幾個簡單常用的單字,一開始近似於 "sub-dictionary",而藉由這些單字,機器將會拓展知識,逐步地理解新的單字,直到整個字典的單字都被理解。
例如要理解單字 "xyz" 前,必須理解所有它定義內的所有單字。
寫程式找到一個最小的 "sub-dictionary"。
Input
輸入有多組測資。每組測資第一行 有一個整數 n (1 <= n <= 100),接下來會有 n 行,每行的第一個單字為字典內的單字,接下來會有數個單字表示定義該單字用的詞。
每個英文單字長度不超過 25,且每個單字的定義所需單字不超過 30 個。
而保證一開始給定的字典會符合上的描述。
Output
對於每組測資,輸出最小字典的大小,接著按照字典順序輸出 sub-dictionary 內的單字。Sample Input
5 aue oizer piqoi oizer doy oizer hweqlo hweqlo hweqlo piqoi aue oizer piqoi piqoi aue aue 0
Sample Output
3 aue oizer piqoi
沒有留言:
張貼留言