题解 | 小红的矩阵染色

小红的矩阵染色

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)
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务