왓슨은 크기의 격자판 위에서 움직이는 로봇을 만들었다. 홈즈와 왓슨은 격자판에 거울과 벽을 배치하여 로봇이 도착점에 도달하는 시간을 최대한 늘리는 내기를 한다.
로봇은 출발점에서 정해진 방향을 바라보며 시작한다. 매번 바라보는 방향으로 한 칸 전진을 시도하고, 전진하려는 칸에 따라 다음과 같이 행동한다.
거울의 모양은 /와 \ 중 하나이며, 반전할 때 서로 바뀐다. 반사 방향은 다음과 같다.
거울 | 오른쪽으로 전진 | 아래쪽으로 전진 | 왼쪽으로 전진 | 위쪽으로 전진 |
|---|---|---|---|---|
| 위 | 왼쪽 | 아래 | 오른쪽 |
| 아래 | 오른쪽 | 위 | 왼쪽 |
위 표의 방향은 거울에 들어가기 직전에 로봇이 바라보는 방향이다. 거울은 로봇이 그 칸에 들어갈 때에만 반전된다. 거울 위에서 벽에 막혀 방향을 바꿀 때에는 거울이 반전되지 않는다.
한 칸 이동할 때마다 초가 걸리며, 방향을 바꾸는 데에는 시간이 걸리지 않는다. 도착점에 도달하면 즉시 멈춘다.
홈즈는 초가 걸리는 격자판을 만들었다. 왓슨을 도와 홈즈를 이기는 격자판을 만들어라. 기준에 못 미치는 유효한 격자판도 부분 점수를 받을 수 있다.
입력은 다음과 같이 정수 하나로 주어진다.
이 값은 격자판의 조건에 영향을 주지 않으므로 읽지 않아도 된다. 격자판을 출력하는 프로그램을 제출한다.
개의 줄에 걸쳐 각 줄에 개의 문자를 공백 없이 출력한다. 각 문자의 의미는 다음과 같다.
U, D, L, R: 출발점. 각각 위, 아래, 왼쪽, 오른쪽을 바라보며 시작한다.F: 도착점..: 빈칸.#: 벽./, \: 거울.출발점을 나타내는 문자는 전체 격자판에 정확히 하나 있어야 하며, 도착점도 정확히 하나 있어야 한다. 가능한 답이 여러 가지라면 아무거나 출력해도 된다.
채점
로봇이 격자판 밖으로 나가지 않고 번 이하의 이동으로 도착점에 도달해야 유효한 격자판이다. 형식이 올바르지 않거나, 무한 루프에 빠지거나, 이 이동 상한까지 도착하지 못하면 점이다. 벽에 막힌 제자리 회전은 이동 횟수에 포함하지 않는다.
U, D, L, R, F, ., #, /, \ 중 하나이다.로봇은 오른쪽으로 두 칸 이동하여 거울에 들어간다. 반사 후 아래를 바라보지만, 아래가 벽이므로 제자리에서 위를 바라본다. 위로 한 칸 이동하면 도착점에 도달한다. 총 초가 걸리며, 점수는 점이다. 이 예제는 유효하지만 점짜리 답은 아니다.
유효한 격자판에서 도착까지의 이동 횟수를 라 할 때 점수는 다음과 같다.
이면 점을 받으며, 문제를 맞은 것으로 처리된다. 번 이동했다는 사실만으로 점수를 주지 않으며, 반드시 도착점에 도달해야 한다.