For problem statement at 1000-1999/1600-1699/1620-1629/1624/problemG.txt this is a correct solution, but verifier at 1000-1999/1600-1699/1620-1629/1624/verifierG.go ends with case 1 failed: expected 2147483647 got 1073741823
exit status 1 can you fix the verifier? package main
import (
"bufio"
"os"
"strconv"
)
var buffer = make([]byte, 1<<16)
var bufLen int
var bufPtr int
func nextByte() byte {
if bufPtr >= bufLen {
bufPtr = 0
var err error
bufLen, err = os.Stdin.Read(buffer)
if bufLen == 0 || err != nil {
return 0
}
}
b := buffer[bufPtr]
bufPtr++
return b
}
func nextInt() int {
b := nextByte()
for b <= 32 {
if b == 0 {
return 0
}
b = nextByte()
}
res := 0
for b > 32 {
res = res*10 + int(b-'0')
b = nextByte()
}
return res
}
func main() {
out := bufio.NewWriter(os.Stdout)
defer out.Flush()
t := nextInt()
for tc := 0; tc < t; tc++ {
n := nextInt()
m := nextInt()
type edge struct {
u, v, w int
}
edges := make([]edge, m)
for i := 0; i < m; i++ {
edges[i].u = nextInt()
edges[i].v = nextInt()
edges[i].w = nextInt()
}
ans := (1 << 30) - 1
parent := make([]int, n+1)
for bit := 29; bit >= 0; bit-- {
cand := ans ^ (1 << bit)
for i := 1; i <= n; i++ {
parent[i] = i
}
comps := n
for _, e := range edges {
if (e.w | cand) == cand {
u, v := e.u, e.v
for u != parent[u] {
parent[u] = parent[parent[u]]
u = parent[u]
}
for v != parent[v] {
parent[v] = parent[parent[v]]
v = parent[v]
}
if u != v {
parent[u] = v
comps--
if comps == 1 {
break
}
}
}
}
if comps == 1 {
ans = cand
}
}
out.WriteString(strconv.Itoa(ans) + "\n")
}
}