TopCoder

Thumb 537819 182187811932250 669508120 n d5336 1399277025622
gtyuse
❤❤❤ Polla is love ❤❤❤ Polla is life

User's AC Ratio

89.5% (17/19)

Submission's AC Ratio

42.3% (22/52)

Description

井字遊戲是三、四歲小孩就會玩的棋賽。在一個3 列(row) x 3 行(column)的空格中,參與遊戲的兩人一個只能填入O,另一個只能填入X,兩人從頭到尾輪流填入自己的符號,誰先將自己的符號在垂直、水平或斜角方向連成3 個,誰就勝利。在此假設遊戲一開始都是填入O 的人先填。

請寫一個程式,來判斷給定任一未完成的棋局,其最後結束時(O 贏、X 贏或平手)共有幾種不同的棋盤面,而其中O 贏的棋盤面、X 贏的棋盤面、和局的棋盤面各有幾種。

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

Input Format

測試檔案中共有一行,以九個連續符號表示未完成的棋局,前三個符號代表該棋局第一列的三個格子的狀態,第四到第六個符號代表該棋局第二列的三個格子的狀態,第七到第九個符號代表該棋局第三列的三個格子的狀態。這些符號除了「O」與「X」外,以「-」來代表尚未被填入的格子。輸入檔中不會有不合理的棋局出現。

Output Format

依序輸出該棋局最後可能出現的不同棋盤面數、O 贏的棋盤面數,X 贏的棋盤面數,以及平手的棋盤面數,此四個數字以空白隔開。

Sample Input

Sample Input #1:


OX--X-XOO

Sample Input #2:


O-OXO-X--

Sample Input #3:


O-OXO-X-X

Sample Output

Sample Output #1:


4 1 2 1

Sample Output #2:


11 9 1 1

Sample Output #3:


4 2 1 1

Hints

這題本來是檔案輸入輸出,不過在這裡請用螢幕輸入輸出。

※你應該要學會從檔案輸入輸出資料!

Problem Source

原TIOJ1061 / 95北市賽(prob 3)

Subtasks

For Testdata: 0 ~ 0, Score: 12
For Testdata: 1 ~ 1, Score: 12
For Testdata: 2 ~ 2, Score: 12
For Testdata: 3 ~ 3, Score: 12
For Testdata: 4 ~ 4, Score: 12
For Testdata: 5 ~ 5, Score: 12
For Testdata: 6 ~ 6, Score: 12
For Testdata: 7 ~ 7, Score: 16
No. Time Limit (ms) Memory Limit (KiB) Output Limit (KiB)
0 2000 65536 65536
1 2000 65536 65536
2 2000 65536 65536
3 2000 65536 65536
4 2000 65536 65536
5 2000 65536 65536
6 2000 65536 65536
7 2000 65536 65536