#P15684. [Bulgarian2022训练营]cosmos重返宇宙

    ID: 14896 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 7 上传者: 标签>字符串字符串哈希CF2200Z函数枚举

[Bulgarian2022训练营]cosmos重返宇宙

题目描述

一艘新的宇宙飞船被制造出来。它外壳上的一个矩形区域由大小相同、颜色不同的矩形隔热砖铺成。这个矩形区域共有 rr 行,每行有 cc 块砖。

飞船外壳使用若干相同的矩形面板铺设。每个面板也由彩色砖组成。面板会从上到下按“面板行”铺在矩形区域中。每一行面板相对于上一行面板可以向右平移,并且相邻两行面板之间的平移量相同。所有面板的方向相同。

总设计师已经知道整个矩形区域中每块砖的颜色。他需要选择一个大小为 a×ba\times b 的面板,以及一个向右平移量 ss,使得该面板能够生成给定矩形区域,并且面板面积 a×ba\times b 尽可能小。

这里 ss 表示每一行面板相对于上一行面板向右平移的砖数,满足 0s<b0\le s<b

下图展示了一个由 66 行构成的矩形区域的一部分。满足条件的最小面板大小为 a=2,b=3a=2,b=3,平移量为 s=1s=1

请编写程序 cosmos,根据给定矩形区域中砖块的颜色,找出面积最小的面板,并输出每一行面板相对于上一行面板向右平移的距离 ss

输入格式

第一行包含两个整数 r,cr,c,表示矩形区域的行数和列数。

接下来 rr 行,每行一个长度为 cc 的字符串,表示该行砖块的颜色。每种颜色用一个大写拉丁字母表示,因此共有最多 2626 种颜色。

保证对于给定矩形区域,存在某个大小为 a×ba\times b 的面板满足条件,并且满足 2ar2a\le r2bc2b\le c

输出格式

输出三个整数 a,b,sa,b,s,满足题目条件。

若有多个解,输出其中 bb 最小的解。这里的比较应在面板面积最小的前提下进行。

样例 1

输入

2 4
ABAB
ABAB

输出

1 2 0

样例 2

输入

5 7
DCADCAD
BABBABB
ADCADCA
BBABBAB
CADCADC

输出

2 3 1

样例 2 对应下图。

子任务

  • 子任务 1:1010 分,正确答案中 s=0s=0,且 r,c20r,c\le 20
  • 子任务 2:1515 分,正确答案中 s=0s=0,且 r,c200r,c\le 200
  • 子任务 3:2020 分,正确答案中 s=0s=0,且 r,c1961r,c\le 1961
  • 子任务 4:1010 分,ss 任意,且 r,c20r,c\le 20
  • 子任务 5:1515 分,ss 任意,且 r,c200r,c\le 200
  • 子任务 6:1515 分,ss 任意,且 r,c500r,c\le 500
  • 子任务 7:1515 分,ss 任意,且 r,c1961r,c\le 1961