For problem statement at 0-999/100-199/150-159/154/problemB.txt this is a correct solution, but verifier at 0-999/100-199/150-159/154/verifierB.go ends with All tests passed can you fix the verifier? package main
import (
"bufio"
"fmt"
"os"
)
func main() {
reader := bufio.NewReader(os.Stdin)
writer := bufio.NewWriter(os.Stdout)
defer writer.Flush()
var n, m int
if _, err := fmt.Fscan(reader, &n, &m); err != nil {
return
}
min_prime := make([]int, n+1)
for i := 2; i <= n; i++ {
if min_prime[i] == 0 {
for j := i; j <= n; j += i {
if min_prime[j] == 0 {
min_prime[j] = i
}
}
}
}
on := make([]bool, n+1)
prime_to_collider := make([]int, n+1)
for q := 0; q < m; q++ {
var op string
var i int
if _, err := fmt.Fscan(reader, &op, &i); err != nil {
break
}
if op == "+" {
if on[i] {
fmt.Fprintln(writer, "Already on")
} else {
conflict := 0
curr := i
for curr > 1 {
p := min_prime[curr]
if prime_to_collider[p] != 0 {
conflict = prime_to_collider[p]
break
}
for curr%p == 0 {
curr /= p
}
}
if conflict != 0 {
fmt.Fprintf(writer, "Conflict with %d\n", conflict)
} else {
fmt.Fprintln(writer, "Success")
on[i] = true
curr = i
for curr > 1 {
p := min_prime[curr]
prime_to_collider[p] = i
for curr%p == 0 {
curr /= p
}
}
}
}
} else if op == "-" {
if !on[i] {
fmt.Fprintln(writer, "Already off")
} else {
fmt.Fprintln(writer, "Success")
on[i] = false
curr := i
for curr > 1 {
p := min_prime[curr]
prime_to_collider[p] = 0
for curr%p == 0 {
curr /= p
}
}
}
}
}
}