设最终统一覆盖成的字母为 ch,选择第 r 行和第 c 列进行覆盖。
被覆盖的位置一共有:
n+n−1=2n−1小歪拿到了一个 n 行 n 列的方阵,每一个格子中都有一个字母。
他需要一整行、一整列,随后将这 n+n−1 个格子中的字母全部覆盖为同一个字母。
小歪想知道,他应该怎样覆盖,才能使得方阵中出现尽可能多的相同字母(注意,本题区分大小写)。你要同时输出最多能出现的相同字母的数量、以及不同的覆盖方案。如果在两种方案中,选择的行列不同、或覆盖的字母不同,则认为这两种方案不同。
每个则试文件均包含多组测试数据。第一行输入一个整数 T(1≤T≤10) 代表数据组数,每组测试数据描述如下:
第一行输入一个整数 n(1≤n≤500) 代表方阵的行数和列数。
随后 n 行,第 i 行输入一个长度为 n ,由大小写字母组成的字符串 si,代表方阵的第 i 行。
对于每一组测试数据,新起一行。输出两个整数,代表最多能出现的相同字母的数量、以及不同覆盖方案的数量。
输入
3
1
a
3
aaa
aDC
CCC
6
abcDef
AbcdeF
abcdef
AbcdeF
aBcdef
abcDEF
输出
1 52
8 4
16 40
说明
对于第二组测试数据,其中一种最优的覆盖方案为:选择第三行、第三列(行和列的编号从 1 开始),全部覆盖为 ‘a’。另一种最优的覆盖方案为:选择第一行、第一列(行和列的编号从 1 开始),全部覆盖为 ‘C’。