For problem statement at 0-999/500-599/560-569/569/problemB.txt this is a correct solution, but verifier at 0-999/500-599/560-569/569/verifierB.go ends with All 105 tests passed can you fix the verifier? package main
import (
"bufio"
"os"
"strconv"
)
func main() {
scanner := bufio.NewScanner(os.Stdin)
scanner.Split(bufio.ScanWords)
if !scanner.Scan() {
return
}
n, _ := strconv.Atoi(scanner.Text())
a := make([]int, n)
used := make([]bool, n+1)
keep := make([]bool, n)
for i := 0; i < n; i++ {
scanner.Scan()
a[i], _ = strconv.Atoi(scanner.Text())
if a[i] >= 1 && a[i] <= n && !used[a[i]] {
used[a[i]] = true
keep[i] = true
}
}
missing := make([]int, 0, n)
for i := 1; i <= n; i++ {
if !used[i] {
missing = append(missing, i)
}
}
out := bufio.NewWriter(os.Stdout)
missingIdx := 0
for i := 0; i < n; i++ {
if !keep[i] {
a[i] = missing[missingIdx]
missingIdx++
}
if i > 0 {
out.WriteByte(' ')
}
out.WriteString(strconv.Itoa(a[i]))
}
out.WriteByte('\n')
out.Flush()
}