For problem statement at 0-999/800-899/840-849/845/problemD.txt this is a correct solution, but verifier at 0-999/800-899/840-849/845/verifierD.go ends with All tests passed can you fix the verifier? package main
import (
"fmt"
"io"
"os"
)
type Scanner struct {
buf []byte
pos int
}
func NewScanner() *Scanner {
buf, _ := io.ReadAll(os.Stdin)
return &Scanner{buf: buf, pos: 0}
}
func (s *Scanner) NextInt() int {
for s.pos < len(s.buf) && s.buf[s.pos] <= ' ' {
s.pos++
}
if s.pos >= len(s.buf) {
return 0
}
res := 0
for s.pos < len(s.buf) && s.buf[s.pos] > ' ' {
res = res*10 + int(s.buf[s.pos]-'0')
s.pos++
}
return res
}
func main() {
sc := NewScanner()
if len(sc.buf) == 0 {
return
}
n := sc.NextInt()
var currentSpeed int
var speedLimits []int
var noOvertakeCount int
var ignored int
for i := 0; i < n; i++ {
t := sc.NextInt()
if t == 1 {
currentSpeed = sc.NextInt()
for len(speedLimits) > 0 && speedLimits[len(speedLimits)-1] < currentSpeed {
ignored++
speedLimits = speedLimits[:len(speedLimits)-1]
}
} else if t == 2 {
ignored += noOvertakeCount
noOvertakeCount = 0
} else if t == 3 {
limit := sc.NextInt()
if currentSpeed > limit {
ignored++
} else {
speedLimits = append(speedLimits, limit)
}
} else if t == 4 {
noOvertakeCount = 0
} else if t == 5 {
speedLimits = speedLimits[:0]
} else if t == 6 {
noOvertakeCount++
}
}
fmt.Println(ignored)
}