For problem statement at 0-999/900-999/990-999/990/problemD.txt this is a correct solution, but verifier at 0-999/900-999/990-999/990/verifierD.go ends with Test 18 failed
Input:5 1 2
Expected:YES
00001
00111
01011
01101
11110
Got:YES
00111
00011
10001
11001
11110
exit status 1 can you fix the verifier? package main
import (
"bufio"
"fmt"
"os"
)
func main() {
in := bufio.NewReader(os.Stdin)
out := bufio.NewWriter(os.Stdout)
defer out.Flush()
var n, a, b int
if _, err := fmt.Fscan(in, &n, &a, &b); err != nil {
return
}
if a > 1 && b > 1 {
fmt.Fprintln(out, "NO")
return
}
if a == 1 && b == 1 {
if n == 2 || n == 3 {
fmt.Fprintln(out, "NO")
return
}
fmt.Fprintln(out, "YES")
adj := make([][]byte, n)
for i := range adj {
adj[i] = make([]byte, n)
for j := range adj[i] {
adj[i][j] = '0'
}
}
for i := 0; i < n-1; i++ {
adj[i][i+1] = '1'
adj[i+1][i] = '1'
}
for i := 0; i < n; i++ {
fmt.Fprintf(out, "%s\n", adj[i])
}
return
}
fmt.Fprintln(out, "YES")
adj := make([][]byte, n)
for i := range adj {
adj[i] = make([]byte, n)
for j := range adj[i] {
adj[i][j] = '0'
}
}
if b == 1 {
for i := 0; i < n-a; i++ {
adj[i][i+1] = '1'
adj[i+1][i] = '1'
}
} else {
for i := 0; i < n; i++ {
for j := 0; j < n; j++ {
if i != j {
adj[i][j] = '1'
}
}
}
for i := 0; i < n-b; i++ {
adj[i][i+1] = '0'
adj[i+1][i] = '0'
}
}
for i := 0; i < n; i++ {
fmt.Fprintf(out, "%s\n", adj[i])
}
}