f001: 平手的棋盤
Tags :
Accepted rate : 9人/9人 ( 100% ) [非即時]
評分方式:
Strictly

最近更新 : 2020-04-30 15:45

Content

井字遊戲是三、四歲小孩就會玩的棋賽。在一個3列(row) x 3行(column)的空格中,參與遊戲的兩人一個只能填入O,另一個只能填入X,兩人從頭到尾輪流填入自己的符號,誰先將自己的符號在垂直、水平或斜角方向連成3個,誰就勝利。在此假設遊戲一開始都是填入O的人先填。請寫一個程式,來判斷給定任一未完成的棋局,其最後結束時平手的棋盤面數共有幾種,並輸出可能的平手棋盤面。

例如,下圖中,最左邊的棋局,其結束時的棋盤面會有右邊四種可能。第一種O贏,第二種平手,第三、四種都是X贏,因此輸出平手的棋盤面數為1。

Input

每筆測資以一行且九個連續符號表示未完成的棋局,前三個符號代表該棋局第一列的三個格子的狀態,第四到第六個符號代表該棋局第二列的三個格子的狀態,第七到第九個符號代表該棋局第三列的三個格子的狀態。這些符號除了「O」與「X」外,以「-」來代表尚未被填入的格子。輸入資料中不會有不合理的棋局出現。「O」與「X」為大寫英文字母,「-」為減號。

Output

先輸出平手的棋盤面數,再依序輸出平手的棋盤面。若不存在平手的棋盤面則輸出0即可。
若平手的棋盤面一個以上,則依各棋盤面資料由上而下由左而右的升冪順序輸出,且各輸出棋盤面之間以一個空白列隔開。每筆輸出測資之間亦以一個空白列隔開。本題為嚴格比對(Strictly)評分方式,請務必按照說明進行輸出。

Sample Input #1
OX--X-XOO
O-OXO-XX-
-O-X--O-X
Sample Output #1
1
OXO
OXX
XOO

0

2
OOX
XOO
OXX

OOX
XXO
OOX

測資資訊:
記憶體限制: 64 MB
公開 測資點#0 (50%): 1.0s , <1K
公開 測資點#1 (50%): 1.0s , <1K
Hint :

不准作弊!

改編自95學年度台北市資訊學科能力競賽

Tags:
出處:
Caido2019學年度下學期延平中學國中組校內程式設計競賽 [管理者:
becaido (Caido)
]


ID User Problem Subject Hit Post Date
沒有發現任何「解題報告」