七言對聯 (APCS 2021-09 初級)
1.0s 256M有個研究團隊正在研究運用人工智慧創作對聯,他們發現中國文學中對於對聯每個字的平仄有嚴格的規範,每首七言對聯有兩句,每句七個字,每一個字不是平聲就是仄聲,他們第一個任務是要用程式自動檢查以下規則:
- A. 二四不同二六同:每句第二個字的平仄和第四個字的平仄必須不同,第二個字的平仄和第六個字的平仄必須相同。
- B. 仄起平收:第一句第七個字必須是仄聲,第二句第七個字必須是平聲。
- C. 同聯相對:第一句的第二、第四與第六個字的平仄必須分別與第二句的第二、第四與第六個字的平仄相反。
請寫一程式檢查七言對聯是否符合上述三項平仄要求。
輸入格式
每筆測試資料之第一行有 \(1\) 個正整數 \(n\),表示有幾首七言對聯,其中 \(n\) 滿足 \(1 \le n \le 30\)。接下來每 \(2\) 行為一首七言對聯,每行有 \(7\) 個數字,表示每句七個字的平仄。這 \(7\) 個數字只會是 \(0\) 或 \(1\),\(0\) 代表平聲,\(1\) 代表仄聲。同一行相鄰二數字之間以一個空白間隔。
輸出格式
輸出 \(n\) 行,為每首七言對聯不符合的規則編號。若一首對聯中有多處不符合某一規則,則該規則編號僅輸出一次,輸出的編號依字母順序排列,中間無空白。若所有規則皆符合,則輸出 None,請參見範例。
範例輸入 1
1
1 0 0 0 0 1 1
0 1 0 0 1 1 0
範例輸出 1
AC
範例說明 1
\(n = 1\),僅有一首七言對聯。第一句違反規則 A,因為第二個字與第四個字同為平聲而且第二與第六字平仄不同。規則 B 是符合的,因為第一句第七個字是仄聲 \(1\) 而第二句第七個字是平聲 \(0\)。規則 C 不符合,因為兩句的第四個字都是平聲且第六個字都是仄聲。依照不符合規則的字母順序應該輸出 AC。
範例輸入 2
3
0 1 0 0 0 1 1
1 0 1 1 1 0 0
0 1 0 1 1 1 0
1 0 0 0 0 0 1
0 1 0 0 1 1 1
1 0 0 0 0 1 1
範例輸出 2
None
AB
ABC
範例說明 2
\(n = 3\),共有三首七言對聯。第一首三條規則都符合,故輸出 None。第二首的兩句都違反規則 A,也違反 B,但符合規則 C。第三首三條規則皆不符合。
評分說明
每筆測試資料執行時間限制為 \(1\) 秒,依正確通過測資筆數給分,其中:
- 第 1 子題組 50 分:\(n = 1\)(如範例一)。
- 第 2 子題組 50 分:無額外限制。
題目來源
APCS 程式實作初級題本範例,程式實作 2021 年 9 月。
登入後即可撰寫程式並提交評測。
登入