For problem statement at 1000-1999/1400-1499/1490-1499/1494/problemE.txt this is a correct solution, but verifier at 1000-1999/1400-1499/1490-1499/1494/verifierE.go ends with All tests passed can you fix the verifier? package main
import (
"bufio"
"os"
)
func main() {
in := bufio.NewReaderSize(os.Stdin, 1<<16)
out := bufio.NewWriterSize(os.Stdout, 1<<16)
defer out.Flush()
readByte := func() byte {
for {
b, err := in.ReadByte()
if err != nil {
return 0
}
if b > 32 {
return b
}
}
}
readInt := func() uint64 {
var res uint64
var b byte
for {
b, _ = in.ReadByte()
if b > 32 {
break
}
}
for {
res = res*10 + uint64(b-'0')
b, _ = in.ReadByte()
if b <= 32 {
break
}
}
return res
}
readInt()
m := readInt()
edges := make(map[uint64]byte)
var mutual int
var same int
for i := uint64(0); i < m; i++ {
op := readByte()
if op == '+' {
u := readInt()
v := readInt()
c := readByte()
key := (u << 32) | v
edges[key] = c
revKey := (v << 32) | u
if revC, exists := edges[revKey]; exists {
mutual++
if revC == c {
same++
}
}
} else if op == '-' {
u := readInt()
v := readInt()
key := (u << 32) | v
c := edges[key]
revKey := (v << 32) | u
if revC, exists := edges[revKey]; exists {
mutual--
if revC == c {
same--
}
}
delete(edges, key)
} else if op == '?' {
k := readInt()
if k%2 == 1 {
if mutual > 0 {
out.WriteString("YES\n")
} else {
out.WriteString("NO\n")
}
} else {
if same > 0 {
out.WriteString("YES\n")
} else {
out.WriteString("NO\n")
}
}
}
}
}