For problem statement at 1000-1999/1600-1699/1670-1679/1677/problemC.txt this is a correct solution, but verifier at 1000-1999/1600-1699/1670-1679/1677/verifierC.go ends with All tests passed can you fix the verifier? package main
import (
"bufio"
"os"
"strconv"
)
func main() {
scanner := bufio.NewScanner(os.Stdin)
scanner.Split(bufio.ScanWords)
buf := make([]byte, 1024*1024)
scanner.Buffer(buf, bufio.MaxScanTokenSize)
out := bufio.NewWriter(os.Stdout)
defer out.Flush()
if !scanner.Scan() {
return
}
t, _ := strconv.Atoi(scanner.Text())
for i := 0; i < t; i++ {
scanner.Scan()
n, _ := strconv.Atoi(scanner.Text())
ca := make([]int, n)
for j := 0; j < n; j++ {
scanner.Scan()
ca[j], _ = strconv.Atoi(scanner.Text())
}
nxt := make([]int, n+1)
for j := 0; j < n; j++ {
scanner.Scan()
cb, _ := strconv.Atoi(scanner.Text())
nxt[ca[j]] = cb
}
visited := make([]bool, n+1)
var c int64 = 0
for j := 1; j <= n; j++ {
if !visited[j] {
length := 0
curr := j
for !visited[curr] {
visited[curr] = true
curr = nxt[curr]
length++
}
c += int64(length / 2)
}
}
ans := 2 * c * (int64(n) - c)
out.WriteString(strconv.FormatInt(ans, 10) + "\n")
}
}