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

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

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

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

	parent := make([][]int, m+1)
	for i := 1; i <= m; i++ {
		parent[i] = make([]int, n+1)
		for j := 1; j <= n; j++ {
			parent[i][j] = j
		}
	}

	var find func(c, x int) int
	find = func(c, x int) int {
		if parent[c][x] != x {
			parent[c][x] = find(c, parent[c][x])
		}
		return parent[c][x]
	}

	union := func(c, x, y int) {
		rootX := find(c, x)
		rootY := find(c, y)
		if rootX != rootY {
			parent[c][rootX] = rootY
		}
	}

	for i := 0; i < m; i++ {
		var u, v, c int
		fmt.Fscan(reader, &u, &v, &c)
		union(c, u, v)
	}

	var q int
	fmt.Fscan(reader, &q)

	for i := 0; i < q; i++ {
		var u, v int
		fmt.Fscan(reader, &u, &v)
		ans := 0
		for c := 1; c <= m; c++ {
			if find(c, u) == find(c, v) {
				ans++
			}
		}
		fmt.Fprintln(writer, ans)
	}
}