第一行输入两个正整数
代表矩阵的行数和列数。
此后
行,每行输入一个长度为
、仅由
和
构成的字符串,代表矩阵每一行中的元素。
输出一个整数,表示至多能使得多少列的元素均为
。
3 4 1111 1111 1111
4
在这个样例中,不需要进行操作,所有列的元素均为
。
3 2 01 10 11
1
在这个样例中,我们可以选择对第一行进行操作,使得第一行变为
,此时,第一列的元素均为
。
package main
import (
"fmt"
)
func main() {
var n, m int
fmt.Scanf("%d %d", &n, &m)
grid := make([]string, n)
for i := 0; i < n; i++ {
fmt.Scanf("%s", &grid[i])
}
colBytes := make([]byte, n) // 复用
count := make(map[string]int)
for j := 0; j < m; j++ {
for i := 0; i < n; i++ {
colBytes[i] = grid[i][j]
}
count[string(colBytes)]++
}
maxCount := 0
for _, c := range count {
if c > maxCount {
maxCount = c
}
}
fmt.Println(maxCount)
}