#3502. [GESP四级模拟]对称的对角线

[GESP四级模拟]对称的对角线

题目描述

在一个 n×nn \times n 的字符方阵中,我们关注所有主对角线方向(从左上到右下 ↘)的对角线。每条对角线取它最靠左上方的格子作为起始位置:即起点在第一行 (0,j)(0,j)j=0,1,,n1j = 0,1,\dots,n-1)或第一列 (i,0)(i,0)i=1,2,,n1i = 1,2,\dots,n-1)。

如果一条对角线上的字符,从左上方读到右下方,与从右下方读到左上方完全相同,那么这条对角线就是对称的

请你找出所有对称的对角线,输出它们的数量,以及每条对称对角线的起始位置长度

长度为 11 的对角线天然对称。

输入格式

第一行一个正整数 nn

接下来 nn 行,每行 nn 个字符(均为小写英文字母),字符之间没有空格。

输出格式

第一行一个整数 mm,表示对称对角线的数量。

接下来 mm 行,每行三个整数 r,c,lenr,c,len,分别表示一条对称对角线的起始行号、起始列号(均从 00 开始)和长度。

要求按以下规则排序:

  1. 长度从大到小;
  2. 长度相同的,按起始行号从小到大;
  3. 还相同的,按起始列号从小到大。

样例 #1

3
aba
bbb
aaa
4
0 0 3
0 1 2
0 2 1
2 0 1

样例解释 #1

主对角线方向共有 55 条对角线(起点在上边或左边):

起点 经过的格子 字符串 是否对称
(0,0) (0,0)(1,1)(2,2) aba
(0,1) (0,1)(1,2) bb
(0,2) a
(1,0) (1,0)(2,1) ba
(2,0) a

因此共有 44 条对称的对角线。按长度降序后输出。

数据范围

1n501 \le n \le 50