题解 | 小红的矩阵染色
小红的矩阵染色
https://www.nowcoder.com/practice/dcbaf862c0e046d79e9cd297abd76bcf
package main
import (
"bufio"
"fmt"
"os"
"sort"
)
func main() {
buf := bufio.NewReader(os.Stdin)
var n, m, k int
fmt.Fscan(buf, &n, &m, &k)
sli := make([]string, n)
for i := 0; i < n; i++ {
fmt.Fscan(buf, &sli[i])
}
count := 0
s := make([]int, 0, n)
for i := 0; i < m; i++ {
wn := 0
for j := 0; j < n; j++ {
if sli[j][i] == 'o' {
wn++
}
if (sli[j][i] == '*' || j == n-1) && wn > 0 {
if wn > 1 {
s = append(s, wn)
}
wn = 0
}
}
}
if len(s) == 0 {
fmt.Print(0)
return
}
sort.Slice(s, func(i, j int) bool {
return s[i] > s[j]
})
for i := 0; i < len(s) && k > 1; i++ {
if s[i] <= k {
k -= s[i]
count += s[i] - 1
} else {
count += k - 1
k = 0
}
}
fmt.Print(count)
}
查看26道真题和解析