d003: 王位繼承
標籤 :
通過比率 : 0人/0人 (0%) [非即時]
評分方式:
Tolerant

最近更新 : 2022-02-25 11:12

內容
某王國其王位繼承的規則如下:
(1) 此國家重男輕女,只有皇室成員中的男性才有繼承權。
(2) 若國王退位或去世,此時王位由國王在世的兒子繼承,年紀較大的優先繼承。
(3) 若國王退位或去世時,國王沒有在世的兒子,此時王位由國王的弟弟繼承,年紀較大的優先繼承。
(4) 若國王退位或去世時,沒有在世的兒子與弟弟,此時王位由國王在世的叔叔繼承,年紀較大的優先繼承。(所謂叔叔是指父親的弟弟)
(5) 若國王退位或去世時,沒有在世的兒子、弟弟、與叔叔,此時王位由國王在世的叔公繼承,年紀較大的優先繼承。(所謂叔公是指祖父的弟弟)
我們以下面這個家族樹(family tree)為例來說明上述規則(假設不在樹上的人皆已去世,不需要列入考慮)。如果目前的國王是 Charles,根據上述規則,當 Charles 退位或去世時,可能繼位者的繼承優先順位依序為 William、Edward、Adam、Benjamin、Peter、Chris與Bill。其中 Adam 排在 William 與 Edward 之後表示當現任國王 Charles 退位或去世時,如果 William 與 Edward 也都已經去世,Adam 便可以繼承王位。同樣考慮下面這個家族樹,如果目前的國王是 Peter,當 Peter 退位或去世時,繼位者的優先順位則為 Allen、Chris與Bill。
 
請撰寫一個程式,依據輸入的一棵家族樹與現任國王名稱,將此家族樹中未來可能繼位者依繼承優先順位列出。所輸入的家族樹是一棵以現任國王或其某一位祖先為樹根的家族樹,樹中的成員都是男性,而且必定包括現任國王。
輸入說明
第一行是現任國王的名字。第二行之後,每一行是成對的父子名字,中間以一個空格隔開。
若有兩對名字而其父親名字相同,先出現者,其年紀大於後出現者。每個名字由長度不大於 30 個的英文字元(a~z, A~Z)構成,大小寫字元視為不同。此外,家族成員最多不超過30名。
例如:
Tom
John Tom
Tom Chris
John Bill
代表Tom是現任國王。Tom是Chris的父親。John是Tom的父親,也是Bill的父親。Tom的年紀比Bill大。
輸出說明

王位繼承者的優先順位,由在位者、第一順位者、第二順位者、...之順序,一行一行列出。

範例輸入 #1
Charles
Peter Allen
Charles William
George Tom
Charles Edward
Tom John
George Peter
Tom Charles
Tom Adam
Chris James
George Chris
Tom Benjamin
範例輸出 #1
Charles
William
Edward
Adam
Benjamin
Peter
Chris
測資資訊:
記憶體限制: 64 MB
公開 測資點#0 (14%): 1.0s , <1K
公開 測資點#1 (14%): 1.0s , <1K
公開 測資點#2 (14%): 1.0s , <1K
公開 測資點#3 (14%): 1.0s , <1K
公開 測資點#4 (14%): 1.0s , <1K
公開 測資點#5 (15%): 1.0s , <1K
公開 測資點#6 (15%): 1.0s , <1K
提示 :

鍊結、串列、陣列、樹 、遞迴

標籤:
出處:
90年全國資訊能力競賽第2題 [管理者:
franklin (管理員)
]


編號 身分 題目 主題 人氣 發表日期
沒有發現任何「解題報告」