← Home
For problem statement at 0-999/400-499/410-419/412/problemA.txt this is a correct solution, but verifier at 0-999/400-499/410-419/412/verifierA.go ends with case 8 failed: expected:
PRINT E
RIGHT
PRINT K
RIGHT
PRINT O
RIGHT
PRINT C
RIGHT
PRINT 5
RIGHT
PRINT J
RIGHT
PRINT Y
RIGHT
PRINT 3
RIGHT
PRINT I
RIGHT
PRINT 4
RIGHT
PRINT L
RIGHT
PRINT T
RIGHT
PRINT Z
RIGHT
PRINT .
RIGHT
PRINT Y
RIGHT
PRINT H
LEFT
LEFT
LEFT
LEFT
LEFT
LEFT
LEFT
LEFT
LEFT
LEFT
LEFT
LEFT
LEFT
LEFT
LEFT
LEFT
PRINT T
LEFT
PRINT O
LEFT
PRINT H
LEFT
PRINT C
LEFT
PRINT ,
LEFT
PRINT !
LEFT
PRINT E
LEFT
PRINT V
LEFT
PRINT ?
LEFT
PRINT S
LEFT
PRINT 9
LEFT
PRINT Q
LEFT
PRINT R
LEFT
PRINT 1
LEFT
PRINT K
got:
PRINT E
LEFT
PRINT T
LEFT
PRINT O
LEFT
PRINT H
LEFT
PRINT C
LEFT
PRINT ,
LEFT
PRINT !
LEFT
PRINT E
LEFT
PRINT V
LEFT
PRINT ?
LEFT
PRINT S
LEFT
PRINT 9
LEFT
PRINT Q
LEFT
PRINT R
LEFT
PRINT 1
LEFT
PRINT K
RIGHT
RIGHT
RIGHT
RIGHT
RIGHT
RIGHT
RIGHT
RIGHT
RIGHT
RIGHT
RIGHT
RIGHT
RIGHT
RIGHT
RIGHT
RIGHT
PRINT K
RIGHT
PRINT O
RIGHT
PRINT C
RIGHT
PRINT 5
RIGHT
PRINT J
RIGHT
PRINT Y
RIGHT
PRINT 3
RIGHT
PRINT I
RIGHT
PRINT 4
RIGHT
PRINT L
RIGHT
PRINT T
RIGHT
PRINT Z
RIGHT
PRINT .
RIGHT
PRINT Y
RIGHT
PRINT H
input:
31 16
K1RQ9S?VE!,CHOTEKOC5JY3I4LTZ.YH
exit status 1 can you fix the verifier? ```go
package main

import (
	"fmt"
)

func main() {
	var n, k int
	var s string
	// Read n, k and the slogan string
	// fmt.Scan parses space-separated values, treating newlines as spaces.
	fmt.Scan(&n, &k, &s)

	// Convert 1-based index k to 0-based index
	k--

	// Calculate distance to the left end (0) and right end (n-1)
	distLeft := k
	distRight := n - 1 - k

	// Strategy: Always go to the closer end first to minimize travel distance.
	// If we go to the closer end first, we travel that short segment twice (there and back)
	// and the long segment once. If we did the reverse, we'd travel the long segment twice.

	if distLeft <= distRight {
		// Go Left first, then sweep Right
		
		// 1. Paint current character
		fmt.Printf("PRINT %c\n", s[k])
		
		// 2. Move left to the start, painting characters
		for i := k - 1; i >= 0; i-- {
			fmt.Println("LEFT")
			fmt.Printf("PRINT %c\n", s[i])
		}
		
		// 3. Move right to the end. Only paint characters that haven't been painted (indices > k)
		for i := 1; i < n; i++ {
			fmt.Println("RIGHT")
			if i > k {
				fmt.Printf("PRINT %c\n", s[i])
			}
		}
	} else {
		// Go Right first, then sweep Left
		
		// 1. Paint current character
		fmt.Printf("PRINT %c\n", s[k])
		
		// 2. Move right to the end, painting characters
		for i := k + 1; i < n; i++ {
			fmt.Println("RIGHT")
			fmt.Printf("PRINT %c\n", s[i])
		}
		
		// 3. Move left to the start. Only paint characters that haven't been painted (indices < k)
		for i := n - 2; i >= 0; i-- {
			fmt.Println("LEFT")
			if i < k {
				fmt.Printf("PRINT %c\n", s[i])
			}
		}
	}
}
```