35. 理想大學 已知有多間學校,且每間學校都會有自己特殊的屬性,學生們希望可以透過輸入自己想要的屬性,來篩選自己想要的學校,請寫一個程式來幫助學生們解決這個問題。 每一大學可以擁有的 8 種屬性: GF(Good Food) :代表附近有美食。 BC(Big Campus):代表有大校園。 NC(Next to City):代表鄰近有大城市。 CT(Convenient Transportation):代表交通方便。 NS(Next to Sea):代表靠海。 NM(Next to Mountain):代表依山。 HL(Has Lake):代表校園有湖。 NL(Near Landscape):代表附近有風景區。 【輸入說明】 第一行:輸入整數N (3 <= N <= 5),代表總共有N間學校 第二~N+1行:每行輸入學校名稱以及該學校擁有的屬性,學校名稱、每個屬性 間以一個空白隔開。 第N+2行:輸入整數M (1 <= M <= 4),代表有幾組想要的屬性 第N+3~N+M+3行:每一行有一組查詢。查詢條件為校園屬性組成,每個校園屬 性為 2 個字元。用 + 號區格的條件代表"或" 的關係,沒有 + 區隔的條件代表 "且" 的關係。 屬性間及 + 之間有 1 個空白間隔。例如: BC NS + CT HL 代 表需找出【大校園且靠海】,或【交通方便且校園有湖】的 所有大學名稱。 其格式如下: XX YY + AA BB 意思為屬性條件為: XX 且 YY,或是 AA 且 BB。 第N+M+4行:輸入整數b (0 <= b <= 1),決定輸出的方式 範例輸入說明: 3 (總共有5間學校) NSYSU NC CT NS NM (學校名稱為NSYSU,擁有的屬性為NC、CT、NS、NM) NTU BC NC CT NS (學校名稱為NTU,擁有的屬性為BC、NC、CT、NS) NCCU BC NL HL (學校名稱為NCCU,擁有的屬性為BC、NL、HL) 2 (總共有2組查詢) BC NS + CT HL (有大校園且靠海 或 交通方便且校園有湖) BC + NS (有大校園 或 靠海) 0 (輸出以當b=0時候的方式輸出) 【輸出說明】 根據每一組的查詢數性條件,各自輸出符合的大學名稱 輸出格式: 當b=0時,代表輸出能符合條件的大學。例如:條件 NS BC NC + CT HL,大學名稱及屬性為NTUT NC BC NS ,則 NTUT 符合條件。假如大學名稱及屬性為NTU CT,則NTU不符合條件,此外如果有多間學校符合,則依學校輸入順序輸出,中間以空白隔開。 當b=1時,代表輸出部分符合且符合最多條件的大學(不需要整組屬性相同,即學生們要求的條件可以拆開來看)。例如:條件 NS BC NC + CT HL,大學名稱及屬性為 NTUT BC NS(符合兩種屬性)、 NTUST BC(符合一種屬性),則輸出NTUT。此外如果符合度最高的學校同時有2間以上,則依學校輸入順序輸出,中間以空白隔開。 範例輸出說明 : NTU (符合第一組查詢條件的BC NS,符合有大校園且靠海的屬性條件) NSYSU NTU NCCU (NSYSU符合第二組查詢條件的NS(靠海),NTU符合第二組 查詢條件的BC(有大校園),NCCU符合第二組查詢條件的 BC(有大校園)) 【特殊要求】 請使用 dictionary 儲存資料並完成此題目 【測試資料一】 輸入: 5 NSYSU NC CT NS NM NTU BC NC CT NS NCCU BC NL HL Providence BC NC NTHU BC NS 2 BC NS + CT HL NM + BC NL + BC NC 0 輸出: NTU NTHU NSYSU NTU NCCU Providence 【測試資料二】 輸入: 3 NTHU GF HL NCTU NM GF BC NCKU CT GF NS 3 HL + BC NL + CT BC NM HL + CT + GF NS NM 0 輸出: NTHU NCKU NCTU 【測試資料三】 輸入: 4 NCU CT NM NUU BC GF NL NM CT NTOU GF NL NM NTNU HL NC 2 BC HL BC + NS GF + NL + NM 1 輸出: NUU NUU 【測試資料四】 輸入: 3 NTUE CT NM HL NC NHCUE NS NTCU NS NC 3 NS + BC HL CT BC GF NC NS NL 1 輸出: NTUE NHCUE NTCU NTUE NTCU 【隱藏測試資料一】 輸入: 3 NCUE GF NL NM NSYSU NS NCCU CT BC NM HL NC 2 HL NL + CT BC + NM GF NL + NL CT HL 0 輸出: NCUE NCCU NCUE 【隱藏測試資料二】 輸入: 4 CCU CT NS GF NCNU NS NTPU NL HL NM BC NUK BC NC NL HL 3 NS + CT HL HL GF NS + NL HL + NM 0 輸出: CCU NCNU NTPU NUK CCU NTPU NUK 【隱藏測試資料三】 輸入: 5 NQU CT GF HL NL NM NTUA HL NL TNUA CT NM NL GF NC TNNUA BC NL GF PCCU NL NM 2 GF NM CT GF NS + NL 1 輸出: NQU TNUA NQU TNUA TNNUA 【隱藏測試資料四】 輸入: 3 FJU NL HL GF NM BC CT SCU NM NC CT NS USC NS GF NL BC 4 NC NM NL CT BC HL NS NS GF NC GF BC 1 輸出: SCU FJU USC FJU USC