2443 三子棋游戏
时间限制 : 10000/5000 MS(Java/Others) | 内存限制 : 131072/65536 KB(Java/Others)
提交数 : 207 | 通过数 : 36
题目描述
三子棋游戏是一个小孩玩的游戏,在一个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
输入要求
输入的第1行是整数N,表示测试数据的个数,接下来有4*N-1行,表示N个棋盘格局,每两个棋盘格局之间用空行隔开。
输出要求
对每个棋盘格局,如果是一个有效的三子棋格局,则输出yes,否则输出no。
输入样例
2 X.O OO. XXX O.X XX. OOO
输出样例
yes no
提示
来源
NBU OJ