← Home
For problem statement at 0-999/100-199/120-129/129/problemB.txt this is a correct solution, but verifier at 0-999/100-199/120-129/129/verifierB.go ends with All 100 tests passed can you fix the verifier? package main

import (
	"bufio"
	"fmt"
	"os"
)

func main() {
	in := bufio.NewReader(os.Stdin)
	out := bufio.NewWriter(os.Stdout)
	defer out.Flush()

	var n, m int
	if _, err := fmt.Fscan(in, &n, &m); err != nil {
		return
	}

	adj := make([][]int, n)
	deg := make([]int, n)

	for i := 0; i < m; i++ {
		var a, b int
		fmt.Fscan(in, &a, &b)
		a--
		b--
		adj[a] = append(adj[a], b)
		adj[b] = append(adj[b], a)
		deg[a]++
		deg[b]++
	}

	removed := make([]bool, n)
	groups := 0

	for {
		toRemove := make([]int, 0)
		for i := 0; i < n; i++ {
			if !removed[i] && deg[i] == 1 {
				toRemove = append(toRemove, i)
			}
		}
		if len(toRemove) == 0 {
			break
		}
		groups++
		for _, v := range toRemove {
			removed[v] = true
		}
		for _, v := range toRemove {
			for _, u := range adj[v] {
				if !removed[u] {
					deg[u]--
				}
			}
			deg[v] = 0
		}
	}

	fmt.Fprintln(out, groups)
}