七言對聯 (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 月。

題目頁說明

快速鍵

主要功能

  • 範例測試 — 執行題目附帶的範例測資並自動比對預期輸出。
  • 自訂測試 — 自己貼 stdin 執行程式。可勾選「與預期輸出比對 (diff)」做行對行比對。
  • 模板 — 貼上你在個人資料設定的預設程式碼模板。
  • 協作 — 與其他同學共筆編輯這題的程式碼。
  • 自動草稿 — 編輯器內容每 1.5 秒自動存到瀏覽器(per 帳號 / 題目 / 語言)。
  • 提交 — 把程式碼交給 judge 評測,回傳 AC / WA / TLE 等結果。

限制

  • 程式碼最多 65,536 字元
  • 自訂測試 stdin 與預期輸出各最多 1 MB (約 100 萬字元)
  • 自訂測試與範例測試共用一個沙箱,每人約 3 秒 1 次 (範例測試 1 秒 1 次)
  • 自訂測試與範例測試都有 15 秒 牆鐘上限(正式評測仍依題目原本時限)
  • 互動題不提供自訂測試(無法模擬與 judge 互動)。
  • 提交評測本身沒有 rate limit,但同題短時間內多次提交會被視為刷分。