Statement
이 문제는 홈즈와 왓슨의 내기와 같은 규칙을 사용하며, 목표 시간 의 범위가 더 크다.
왓슨은 크기의 격자판 위에서 작동하는 자율 주행 로봇을 개발했다. 왓슨은 로봇의 성능을 테스트하기 위해 친구 홈즈와 내기를 했다. 격자판에 거울과 벽을 배치하여, 로봇이 출발점에서 시작해 도착점에 도달할 때까지 최대한 오랜 시간이 걸리게 만들어야 한다.
로봇은 항상 자신이 바라보는 방향으로 칸 전진을 시도한다. 전진하려는 칸의 상태에 따라 다음과 같이 행동한다.
- 빈칸인 경우: 해당 칸으로 이동한다. 출발점과 도착점도 빈칸으로 간주한다.
- 거울인 경우: 현재 거울의 모양으로 반사된 방향을 먼저 계산한다. 그 뒤 거울이 있는 칸으로 이동하고, 거울의 모양을 반전시킨 뒤, 미리 계산한 방향을 바라본다.
- 벽인 경우: 이동하지 않고 제자리에서 방향을 도 돌린다.
- 격자판 밖인 경우: 로봇은 격자판을 벗어나며, 다시는 도착점에 도달할 수 없다.
거울에 의한 방향 변화는 다음과 같다.
/: 오른쪽 위, 위 오른쪽, 왼쪽 아래, 아래 왼쪽.\: 오른쪽 아래, 아래 오른쪽, 왼쪽 위, 위 왼쪽.
거울은 로봇이 그 칸으로 들어갈 때에만 반전된다. 로봇이 거울 칸 위에 있는 상태에서 벽에 막혀 방향을 돌리는 경우에는 거울의 모양이 바뀌지 않는다.
한 칸을 이동하는 데에는 초가 걸리며, 방향을 바꾸는 데에는 시간이 걸리지 않는다. 즉, 로봇이 도착점에 도달할 때까지 걸린 시간은 로봇이 격자판 안에서 이동한 횟수와 같다. 로봇은 도착점에 도달하는 즉시 멈춘다.
홈즈는 도착점에 도달하는 데 무려 초가 걸리는 격자판을 완성해 왓슨을 도발하고 있다. 왓슨을 도와 홈즈를 이기는 격자판을 만들어 보자.
유효한 출력에서는 도착점에 도달하는 시간 가 이하이어야 한다. 인 출력은 유효하지 않은 출력으로 처리한다.
Scoring
출력한 격자판에서 로봇이 도착점에 도달하는 데 걸리는 시간을 초라고 하자. 유효한 출력은 다음 점수를 받는다.
점 이상을 받으면 문제를 맞은 것으로 처리된다. 즉, 이어야 한다. 유효하지 않은 격자판을 출력하면 점을 받는다.
Input
이 문제는 출력만 제출하는(Output Only) 문제로, 입력이 주어지지 않는다.
Output
줄에 걸쳐 각 줄에 개의 문자를 공백 없이 출력한다.
사용할 수 있는 문자는 다음과 같다.
U,D,L,R: 출발점. 각각 위, 아래, 왼쪽, 오른쪽을 바라보며 시작한다.F: 도착점..: 빈칸.#: 벽./,\: 거울.
출력은 다음 조건을 모두 만족해야 한다.
- 정확히 줄이며, 각 줄은 정확히 개의 문자로 이루어져 있다.
- 위에 나열된 문자만 사용한다.
- 출발점과 도착점이 각각 정확히 하나씩 존재한다.
- 로봇이 출발점에서 출발하여 언젠가 도착점에 도달한다. 격자판 밖으로 벗어나거나 무한 루프에 빠지면 안 된다.
- 도착점에 도달하는 시간 는 이하이다.
유효하지 않은 격자판을 출력하면 점을 받는다.
Constraints
- 입력은 주어지지 않는다.
- 출력 격자판의 크기는 항상 이다.
- 유효한 출력에 대해 이다.