For problem statement at 0-999/500-599/570-579/573/problemC.txt this is a correct solution, but verifier at 0-999/500-599/570-579/573/verifierC.go ends with All 120 tests passed can you fix the verifier? ```go
package main
import (
"bufio"
"fmt"
"os"
)
type FastScanner struct {
r *bufio.Reader
}
func NewFastScanner() *FastScanner {
return &FastScanner{r: bufio.NewReader(os.Stdin)}
}
func (fs *FastScanner) nextInt() int {
sign := 1
val := 0
c, _ := fs.r.ReadByte()
for (c < '0' || c > '9') && c != '-' {
c, _ = fs.r.ReadByte()
}
if c == '-' {
sign = -1
c, _ = fs.r.ReadByte()
}
for c >= '0' && c <= '9' {
val = val*10 + int(c-'0')
c, _ = fs.r.ReadByte()
}
return sign * val
}
func main() {
fs := NewFastScanner()
n := fs.nextInt()
g := make([][]int, n)
deg := make([]int, n)
for i := 0; i < n-1; i++ {
a := fs.nextInt() - 1
b := fs.nextInt() - 1
g[a] = append(g[a], b)
g[b] = append(g[b], a)
deg[a]++
deg[b]++
}
if n <= 2 {
fmt.Println("Yes")
return
}
inS := make([]bool, n)
countS := 0
for i := 0; i < n; i++ {
if deg[i] > 1 {
inS[i] = true
countS++
}
}
if countS == 0 {
fmt.Println("Yes")
return
}
degS := make([]int, n)
for v := 0; v < n; v++ {
if !inS[v] {
continue
}
for _, u := range g[v] {
if inS[u] {
degS[v]++
}
}
if degS[v] > 2 {
fmt.Println("No")
return
}
}
// check connectivity within S
visited := make([]bool, n)
var start int = -1
for i := 0; i < n; i++ {
if inS[i] {
start = i
break
}
}
stack := make([]int, 0, countS)
stack = append(stack, start)
visited[start] = true
seen := 1
for len(stack) > 0 {
v := stack[len(stack)-1]
stack = stack[:len(stack)-1]
for _, u := range g[v] {
if inS[u] && !visited[u] {
visited[u] = true
seen++
stack = append(stack, u)
}
}
}
if seen != countS {
fmt.Println("No")
return
}
fmt.Println("Yes")
}
```