#MNJ08C. [J组模拟赛8] 徐老师的井字棋

[J组模拟赛8] 徐老师的井字棋

文件读写

输入文件chess.in 输出文件chess.out

限制

  • 1000ms
  • 512MB

题目描述

徐老师最近很喜欢玩 井字棋,这天他找到黄老师一起下 井字棋

井字棋是在 3∗33 * 3 的网格中,双方轮流放下棋子,抢先形成一行/一列/一组对角线同色棋子的玩家胜利。

徐老师和黄老师玩的井字棋规则如下

  1. 徐老师和黄老师轮流将自己的棋子放入空位(用 . 表示)中,并且每局游戏都是徐老师先手(徐老师先下棋)
  2. 徐老师放的棋子用 X(大写字母) 表示,黄老师的棋子用 H 表示
  3. 不允许把棋子放入已有棋子的位置中,只能放入空位
  4. 当有 33 个相同的棋子出现在同一行,同一列,或者同一对角线时,游戏结束,连出 33 个棋子的人获胜
  5. 当所有空位都被填满,游戏也会结束,此时平局
  6. 游戏结束后不允许再次下棋

现在徐老师和黄老师玩到中途,对现在的棋局有一些争议!

他们觉得现在的棋局可能不是正常下棋能形成的局面,可能双方在下棋时出现了犯规的行为

比如这是一个可能形成的局面,徐老师先手下在了 (2,3)(2,3) 处,然后黄老师下在了 (3,2)(3,2) 处

...
..X
.H.

比如这是一个不可能形成的局面,徐老师在连成 33 个 XX 以后游戏就结束了,黄老师不应该再下棋

X.H
X.H
X.H

比如这是一个不可能形成的局面,徐老师作为先手,不可能下了一个棋子后黄老师能连下两个棋子

.H.
.H.
.X.

现在徐老师和黄老师希望你来帮他们判断一下,现在的局面到底是不是合法的?

如果是则输出 Yes 否则输出 No

输入格式

输入第一行包含一个正整数 TT 表示有多组测试数据

对于每组测试数据:输入三行长度为 33 的字符串用来描述当前的棋局情况

其中每组测试数据之间会空一行

输出格式

对于每组测试数据,输出当前局面是否合法,合法则输出 Yes 否则输出 No

数据范围

对于 10%10\% 的数据保证:1≤T≤51 \leq T \leq 5,其中每组测试数据中最多只存在一个棋子

对于 40%40\% 的数据保证: 1≤T≤101 \leq T \leq 10,其中每组测试数据中最多只存在四个棋子

对于 100%100\% 的数据保证: 1≤T≤10001 \leq T \leq 1000

3
...
..X
.H.

X.H
X.H
X.H

.H.
.H.
.X.
Yes
No
No
难度 未评定
通过率 12.5%
尝试 32
通过 4
ID
3715
类型
传统题
Time Limit
1000ms
Memory Limit
512MiB
上传者