← Home
For problem statement at 0-999/600-699/640-649/648/problemC.txt this is a correct solution, but verifier at 0-999/600-699/640-649/648/verifierC.go ends with  can you fix the verifier? package main

import (
	"fmt"
	"strings"
)

func main() {
	var n, m int
	fmt.Scan(&n, &m)

	grid := make([]string, n)
	var startR, startC int

	for i := 0; i < n; i++ {
		fmt.Scan(&grid[i])
		idx := strings.Index(grid[i], "S")
		if idx != -1 {
			startR = i
			startC = idx
		}
	}

	dr := []int{-1, 1, 0, 0}
	dc := []int{0, 0, -1, 1}
	dirChar := []string{"U", "D", "L", "R"}

	r, c := startR, startC
	pr, pc := -1, -1

	var ans strings.Builder

	for {
		for i := 0; i < 4; i++ {
			nr := r + dr[i]
			nc := c + dc[i]

			if nr >= 0 && nr < n && nc >= 0 && nc < m {
				if grid[nr][nc] != '.' && (nr != pr || nc != pc) {
					ans.WriteString(dirChar[i])
					pr, pc = r, c
					r, c = nr, nc
					break
				}
			}
		}
		if r == startR && c == startC {
			break
		}
	}

	fmt.Println(ans.String())
}