다음 다이어그램을 세로 십자형 튜브 세트로 상상해보십시오.
1 2 1 2 1 2 3 4
\ / \ / \ / \ /
X | | |
/ \ / \ / \ / \
2 1 1 2 | X |
\ / \ /
X X
/ \ / \
3 1 4 2
가장 왼쪽의 다이어그램에서, 1
및 2
각각의 슬래시를 아래로 밀고에서 교차하여 X
시작한 반대쪽에서 나옵니다.
가운데 다이어그램에서 동일한 아이디어이지만 |
경로가 교차하지 않음을 나타내므로 아무것도 변경되지 않습니다.
가장 오른쪽 도면 쇼는 더 복잡한 튜브는 순열로 라우팅 1 2 3 4
로 3 1 4 2
.
골
이 코드 골프 도전에서 당신의 목표는와 같은 순열이 주어지면 이러한 "튜브 라우팅 다이어그램"을 그리는 것 3 1 4 2
입니다. 가장 짧은 바이트 단위의 프로그램이 이길 것입니다.
세부
- 공백으로 구분 된 1부터 n 까지의 숫자 순열로 입력이 stdin에서 나옵니다 . 여기서 n 은 양의 정수입니다. 모든 입력이 제대로 구성되어 있다고 가정 할 수 있습니다.
라우팅 다이어그램 출력은 stdout으로 이동합니다.
- 다이어그램의 맨 위에 1부터 n 까지의 숫자를 "삭제"하면 입력 순열이 맨 아래에 나옵니다. (위와 아래는 항상 슬래시 레이어입니다.)
- 다이어그램은 최적으로 작을 필요는 없습니다. 정확한 한 필요한만큼의 수준 일 수 있습니다.
- 다이어그램에는 문자
\/ X|
와 개행 문자 (숫자 없음) 만 포함해야합니다 . |
사용하는X
것이 의미가 없으므로 항상 가장 바깥 쪽 교차로에서 사용해야합니다 .- 다이어그램이 모두 올바르게 정렬되어 있으면 몇 개의 선행 또는 후행 공백이 좋습니다.
예
3 1 4 2
생산량 의 입력 (위와 동일)
\ / \ /
| |
/ \ / \
| X |
\ / \ /
X X
/ \ / \
의 1
생산은
\
|
/
|
\
|
/
의 3 2 1
생산은
\ / \
X |
/ \ /
| X
\ / \
X |
/ \ /
의 2 1 3 4 6 5
생산은
\ / \ / \ /
X | X
/ \ / \ / \
X
직접 연결할 수 있습니까 ? 다른 사람에게 ? |
/
X
row of slashes
, row of X's and |'s
, row of slashes
, row of X's and |'s
, ... 형식입니다.
n
10보다 클 수 있습니까 ?