For problem statement at 0-999/700-799/700-709/704/problemA.txt this is a correct solution, but verifier at 0-999/700-799/700-709/704/verifierA.go ends with All tests passed can you fix the verifier? package main
import (
"bufio"
"os"
)
func main() {
in := bufio.NewReader(os.Stdin)
out := bufio.NewWriter(os.Stdout)
defer out.Flush()
readInt := func() int {
var n int
var c byte
var err error
for {
c, err = in.ReadByte()
if err != nil {
return n
}
if c >= '0' && c <= '9' {
break
}
}
for {
n = n*10 + int(c-'0')
c, err = in.ReadByte()
if err != nil || c < '0' || c > '9' {
break
}
}
return n
}
n := readInt()
if n == 0 {
return
}
q := readInt()
appNotifs := make([][]int, n+1)
isRead := make([]bool, q+1)
unread := 0
notifID := 0
maxT := 0
for i := 0; i < q; i++ {
type_ := readInt()
if type_ == 1 {
x := readInt()
notifID++
appNotifs[x] = append(appNotifs[x], notifID)
unread++
} else if type_ == 2 {
x := readInt()
for _, id := range appNotifs[x] {
if !isRead[id] {
isRead[id] = true
unread--
}
}
appNotifs[x] = appNotifs[x][:0]
} else if type_ == 3 {
t := readInt()
for j := maxT + 1; j <= t; j++ {
if !isRead[j] {
isRead[j] = true
unread--
}
}
if t > maxT {
maxT = t
}
}
v := unread
if v == 0 {
out.WriteByte('0')
out.WriteByte('\n')
} else {
var buf [15]byte
idx := 14
for v > 0 {
buf[idx] = byte(v%10 + '0')
v /= 10
idx--
}
out.Write(buf[idx+1:])
out.WriteByte('\n')
}
}
}