#CF1926B. Vlad and Shapes

    ID: 6879 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 10 上传者: 标签>计算几何模拟CodeforcesCodeforces Round 928(Div4)Div4BCF1926B800

Vlad and Shapes

题目描述

Vladislav 有一个 n×nn \times n 的二进制正方形网格。在网格上用符号 1\texttt{1} 画出了一个三角形或正方形。由于他太忙于耍酷了,他请你帮他判断网格上画的是哪种图形。

  • 三角形是指由 kkk>1k>1)个连续的行组成的图形,其中第 ii 行有 2i12 \cdot i-1 个连续的 1\texttt{1},且这些 1\texttt{1} 居中于某一列。倒三角形(顶点朝下)也算作有效的三角形(但不包括旋转 9090 度的情况)。

    左边两幅图是三角形的例子:k=4k=4k=3k=3。右边两幅图不是三角形。

  • 正方形是指由 kkk>1k>1)个连续的行组成的图形,其中第 ii 行有 kk 个连续的 1\texttt{1},并且这些 1\texttt{1} 距离网格左边界的距离相等。

    这是两个正方形的例子:k=2k=2k=4k=4

对于给定的网格,请判断画的是哪种图形。

输入格式

第一行包含一个整数 tt1t1001 \leq t \leq 100),表示测试用例的数量。

每个测试用例的第一行包含一个整数 nn2n102 \leq n \leq 10),表示网格的大小。

接下来的 nn 行,每行包含 nn 个字符,字符为 0\texttt{0}1\texttt{1}

网格中恰好有一个三角形或一个正方形,且所有的 1\texttt{1} 都属于该图形。保证三角形或正方形的大小大于 11(即图形不能只由一个 1\texttt{1} 组成)。

输出格式

对于每个测试用例,如果所有的 1\texttt{1} 在网格中构成一个正方形,输出 "SQUARE";否则输出 "TRIANGLE"(不带引号)。

样例

6
3
000
011
011
4
0000
0000
0100
1110
2
11
11
5
00111
00010
00000
00000
00000
10
0000000000
0000000000
0000000000
0000000000
0000000000
1111111110
0111111100
0011111000
0001110000
0000100000
3
111
111
111
SQUARE
TRIANGLE
SQUARE
TRIANGLE
TRIANGLE
SQUARE

样例说明

由 ChatGPT 4.1 翻译

来源

Codeforces 1926B,英文题名 Vlad and Shapes。