2443 三子棋游戏
Time Limit : 10000/5000 MS(Java/Others) | Memory Limit : 131072/65536 KB(Java/Others)
Submits : 207 | Solved : 36
Description
三子棋游戏是一个小孩玩的游戏,在一个3*3的棋盘中进行。游戏有两个玩家,其中一个玩家(用字母“X”表示)先走棋,在一个没有被占用的网格位置中放置一个X。然后另一个玩家(用字母“O”表示),在一个没有被占用的网格中放置一个O。这两个玩家交替地放置X和O,直到棋盘的网格都被占用了,或者某个玩家的棋子占据了整条线(水平、垂直或者对角线)。游戏开始时棋盘是空的,用3行3列共9个字符“.”表示。如果X玩家走棋,则在相应的位置上放置X;如果是O玩家走棋,则在相应位置上放置O。下面的棋盘表示从游戏开始直到X玩家最后赢得比赛的一系列走棋过程。 你的任务是读入棋盘状态,判断其可不可能是一个有效的三子棋棋盘,也就是说是否存在一系列走棋,能到达该棋盘状态。
... X.. X.O X.O X.O X.O X.O X.O
... ... ... ... .O. .O. OO. OO.
... ... ... ..X ..X X.X X.X XXX
Input
输入的第1行是整数N,表示测试数据的个数,接下来有4*N-1行,表示N个棋盘格局,每两个棋盘格局之间用空行隔开。
Output
对每个棋盘格局,如果是一个有效的三子棋格局,则输出yes,否则输出no。
Sample Input
2 X.O OO. XXX O.X XX. OOO
Sample Output
yes no
HINT
Source
NBU OJ