← Home
For problem statement at 2000-2999/2100-2199/2150-2159/2155/problemB.txt this is a correct solution, but verifier at 2000-2999/2100-2199/2150-2159/2155/verifierB.go ends with test 1 failed: case 1: cell (1,2) mismatch
input:
2
2 0
2 3
reference output:
YES
RL
RU
NO

candidate output:
YES
RD
RL
NO
exit status 1 can you fix the verifier? package main

import (
	"bufio"
	"fmt"
	"os"
)

func getCell(m, n int) (int, int) {
	r := m / n
	c := m % n
	if r%2 == 1 {
		c = n - 1 - c
	}
	return r, c
}

func main() {
	reader := bufio.NewReader(os.Stdin)
	writer := bufio.NewWriter(os.Stdout)
	defer writer.Flush()

	var t int
	if _, err := fmt.Fscan(reader, &t); err != nil {
		return
	}

	for tc := 0; tc < t; tc++ {
		var n, k int
		fmt.Fscan(reader, &n, &k)

		C := n*n - k
		if C == 1 {
			fmt.Fprintln(writer, "NO")
			continue
		}

		fmt.Fprintln(writer, "YES")
		grid := make([][]byte, n)
		for i := 0; i < n; i++ {
			grid[i] = make([]byte, n)
			for j := 0; j < n; j++ {
				if i%2 == 0 {
					if j == n-1 {
						grid[i][j] = 'D'
					} else {
						grid[i][j] = 'R'
					}
				} else {
					if j == 0 {
						grid[i][j] = 'D'
					} else {
						grid[i][j] = 'L'
					}
				}
			}
		}

		if C >= 2 {
			r1, c1 := getCell(C-2, n)
			r2, c2 := getCell(C-1, n)
			if r1 == r2 {
				if c1 < c2 {
					grid[r2][c2] = 'L'
				} else {
					grid[r2][c2] = 'R'
				}
			} else {
				if r1 < r2 {
					grid[r2][c2] = 'U'
				} else {
					grid[r2][c2] = 'D'
				}
			}
		}

		for i := 0; i < n; i++ {
			fmt.Fprintln(writer, string(grid[i]))
		}
	}
}