For problem statement at 1000-1999/1400-1499/1470-1479/1479/problemC.txt this is a correct solution, but verifier at 1000-1999/1400-1499/1470-1479/1479/verifierC.go ends with All 100 tests passed can you fix the verifier? package main
import (
"fmt"
)
type Edge struct {
u, v, w int
}
func main() {
var L, R int
if _, err := fmt.Scan(&L, &R); err != nil {
return
}
edges := []Edge{}
currentL := L
remaining := R - L + 1
n := 0
if currentL == 1 {
currentL = 2
remaining--
}
var maxM int
if remaining == 0 {
maxM = -1
} else {
for m := 20; m >= 0; m-- {
if (remaining>>m)&1 == 1 {
maxM = m
break
}
}
}
k := maxM + 2
if k < 1 {
k = 1
}
n = k + 1
if L == 1 {
edges = append(edges, Edge{1, n, 1})
}
for i := 2; i <= k; i++ {
edges = append(edges, Edge{1, i, 1})
for j := 2; j < i; j++ {
edges = append(edges, Edge{j, i, 1 << (j - 2)})
}
}
for m := maxM; m >= 0; m-- {
if (remaining>>m)&1 == 1 {
w := currentL - 1
edges = append(edges, Edge{m + 2, n, w})
currentL += 1 << m
}
}
fmt.Println("YES")
fmt.Printf("%d %d\n", n, len(edges))
for _, e := range edges {
fmt.Printf("%d %d %d\n", e.u, e.v, e.w)
}
}