Hãy tưởng tượng các sơ đồ sau đây là các bộ ống chéo chéo dọc.
1 2 1 2 1 2 3 4
\ / \ / \ / \ /
X | | |
/ \ / \ / \ / \
2 1 1 2 | X |
\ / \ /
X X
/ \ / \
3 1 4 2
Trong sơ đồ ngoài cùng bên trái, 1
và 2
trượt xuống các dấu gạch chéo tương ứng của chúng, giao nhau tại X
và đi ra ở phía đối diện từ nơi chúng bắt đầu.
Đó là ý tưởng tương tự trong sơ đồ giữa, nhưng |
biểu thị rằng các đường dẫn không giao nhau, vì vậy không có gì thay đổi.
Biểu đồ ngoài cùng bên phải cho thấy một định tuyến ống phức tạp hơn mà thấm 1 2 3 4
vào 3 1 4 2
.
Mục tiêu
Mục tiêu của bạn trong thử thách chơi gôn mã này là vẽ ra các "sơ đồ định tuyến ống" cho một hoán vị như 3 1 4 2
. Chương trình ngắn nhất tính bằng byte sẽ giành chiến thắng.
Chi tiết
- Đầu vào đến từ stdin vì mọi hoán vị của các số từ 1 đến n cách nhau bởi khoảng trắng, trong đó n là số nguyên dương. Bạn có thể cho rằng tất cả các đầu vào được hình thành tốt.
Đầu ra sơ đồ định tuyến đi đến thiết bị xuất chuẩn.
- "Thả" các số từ 1 đến n theo thứ tự vào đầu sơ đồ sẽ dẫn đến hoán vị đầu vào xuất hiện ở phía dưới. (Trên và dưới luôn là các lớp gạch chéo.)
- Sơ đồ không cần phải tối ưu nhỏ. Nó có thể là nhiều cấp độ cần thiết miễn là nó chính xác.
- Sơ đồ chỉ nên chứa các ký tự
\/ X|
cũng như dòng mới (không có số). |
nên luôn luôn được sử dụng trên các giao lộ ngoài cùng vì việc sử dụngX
sẽ không có ý nghĩa.- Một vài khoảng trắng ở đầu hoặc cuối là tốt miễn là tất cả các sơ đồ được xếp chính xác.
Ví dụ
Một đầu vào 3 1 4 2
có thể tạo ra (giống như trên)
\ / \ /
| |
/ \ / \
| X |
\ / \ /
X X
/ \ / \
Một đầu vào 1
có thể sản xuất
\
|
/
|
\
|
/
Một đầu vào 3 2 1
có thể sản xuất
\ / \
X |
/ \ /
| X
\ / \
X |
/ \ /
Một đầu vào 2 1 3 4 6 5
có thể sản xuất
\ / \ / \ /
X | X
/ \ / \ / \
X
kết nối có thể trực tiếp đến một |
cách /
không? Để người khác X
?
row of slashes
, row of X's and |'s
, row of slashes
, row of X's and |'s
định dạng, ....
n
thể lớn hơn 10?